sqlite/test/joinD.test

35137 lines
1.2 MiB

# 2022-05-04
# revised 2022-05-31
#
# 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.
#
#***********************************************************************
#
# TESTRUNNER: slow
#
# This file implements tests for JOINs that use Bloom filters.
#
# The test case output is (mostly) all generated by PostgreSQL 14. This
# test module was created as follows:
#
# 1. Run a TCL script (included at the bottom of this file) that
# generates an input script for "psql" that will run man
# diverse tests on joins.
#
# 2. Run the script from step (1) through psql and collect the
# output.
#
# 3. Make a few minor global search-and-replace operations to convert
# the psql output into a form suitable for this test module.
#
# 4. Add this header, and the script content at the footer.
#
# A few extra tests that were not generated from postgresql output are
# added at the end.
#
set testdir [file dirname $argv0]
source $testdir/tester.tcl
db nullvalue -
db eval {
CREATE TABLE t1(a INT, b INT, c INT, d INT);
WITH RECURSIVE c(x) AS (VALUES(0) UNION ALL SELECT x+1 FROM c WHERE x<95)
INSERT INTO t1(a,b,c,d) SELECT x, x+100, x+200, x+300 FROM c;
CREATE TABLE t2(b INT, x INT);
INSERT INTO t2(b,x) SELECT b, a FROM t1 WHERE a%2=0;
CREATE INDEX t2b ON t2(b);
CREATE TABLE t3(c INT, y INT);
INSERT INTO t3(c,y) SELECT c, a FROM t1 WHERE a%3=0;
CREATE INDEX t3c ON t3(c);
CREATE TABLE t4(d INT, z INT);
INSERT INTO t4(d,z) SELECT d, a FROM t1 WHERE a%5=0;
CREATE INDEX t4d ON t4(d);
INSERT INTO t1(a,b,c,d) VALUES
(96,NULL,296,396),
(97,197,NULL,397),
(98,198,298,NULL),
(99,NULL,NULL,NULL);
ANALYZE;
}
do_execsql_test joinD-1 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-2 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-3 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-4 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-5 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON true
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-6 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-7 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-8 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-9 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-10 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-11 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-12 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-13 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-14 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-15 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-16 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
INNER JOIN t3 ON t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-17 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
INNER JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-18 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-19 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-20 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-21 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-22 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-23 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-24 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON true
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-25 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-26 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-27 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-28 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-29 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-30 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-31 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-32 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-33 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-34 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-35 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
INNER JOIN t3 ON t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-36 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
LEFT JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-37 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-38 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-39 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-40 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-41 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-42 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-43 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON true
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-44 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-45 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-46 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-47 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-48 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-49 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-50 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-51 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-52 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-53 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-54 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
INNER JOIN t3 ON t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
}
do_execsql_test joinD-55 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
RIGHT JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-56 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-57 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-58 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-59 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-60 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-61 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-62 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON true
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-63 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-64 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-65 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-66 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-67 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-68 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-69 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-70 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-71 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-72 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-73 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
INNER JOIN t3 ON t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
}
do_execsql_test joinD-74 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
FULL JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-75 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-76 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-77 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-78 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-79 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-80 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-81 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON true
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-82 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-83 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-84 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-85 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-86 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-87 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-88 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-89 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-90 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-91 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-92 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-93 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
INNER JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-94 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-95 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-96 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-97 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-98 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-99 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-100 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON true
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-101 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-102 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-103 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-104 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-105 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-106 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-107 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-108 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-109 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-110 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-111 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-112 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
LEFT JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-113 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-114 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-115 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-116 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-117 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-118 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-119 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON true
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-120 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-121 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-122 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-123 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-124 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-125 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-126 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-127 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-128 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-129 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
}
do_execsql_test joinD-130 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
}
do_execsql_test joinD-131 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
RIGHT JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-132 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-133 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-134 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-135 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-136 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-137 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-138 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON true
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-139 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-140 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-141 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-142 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-143 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-144 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-145 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-146 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-147 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-148 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - - - - - 300 0
}
do_execsql_test joinD-149 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
}
do_execsql_test joinD-150 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
FULL JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-151 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-152 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-153 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-154 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-155 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-156 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-157 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON true
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-158 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-159 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-160 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-161 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-162 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-163 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-164 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-165 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-166 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-167 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-168 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-169 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
INNER JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-170 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-171 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-172 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
}
do_execsql_test joinD-173 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
}
do_execsql_test joinD-174 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-175 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
}
do_execsql_test joinD-176 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON true
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-177 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
}
do_execsql_test joinD-178 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
}
do_execsql_test joinD-179 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-180 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
}
do_execsql_test joinD-181 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-182 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-183 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-184 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-185 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
}
do_execsql_test joinD-186 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - 200 0 - -
}
do_execsql_test joinD-187 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-188 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
LEFT JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-189 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
}
do_execsql_test joinD-190 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
}
do_execsql_test joinD-191 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-192 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-193 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-194 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-195 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON true
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-196 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-197 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-198 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-199 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-200 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-201 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-202 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-203 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-204 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-205 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-206 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
}
do_execsql_test joinD-207 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
RIGHT JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-208 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-209 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-210 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-211 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-212 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-213 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-214 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON true
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-215 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
}
do_execsql_test joinD-216 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-217 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-218 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-219 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-220 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-221 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-222 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-223 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-224 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - 200 0 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-225 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
}
do_execsql_test joinD-226 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
FULL JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-227 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-228 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-229 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-230 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-231 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-232 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-233 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON true
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-234 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-235 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-236 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-237 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-238 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-239 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-240 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-241 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-242 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-243 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-244 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
FULL JOIN t3 ON t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-245 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
INNER JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-246 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-247 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
}
do_execsql_test joinD-248 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
}
do_execsql_test joinD-249 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-250 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
}
do_execsql_test joinD-251 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON true
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-252 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
}
do_execsql_test joinD-253 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
}
do_execsql_test joinD-254 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-255 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
}
do_execsql_test joinD-256 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-257 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-258 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-259 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-260 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
}
do_execsql_test joinD-261 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - - - 200 0 - -
}
do_execsql_test joinD-262 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
FULL JOIN t3 ON t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-263 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
LEFT JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-264 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
}
do_execsql_test joinD-265 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-266 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-267 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-268 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-269 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON true
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-270 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-271 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-272 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-273 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-274 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-275 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-276 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-277 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-278 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-279 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
}
do_execsql_test joinD-280 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
FULL JOIN t3 ON t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-281 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
RIGHT JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-282 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-283 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-284 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-285 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-286 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-287 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON true
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-288 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
}
do_execsql_test joinD-289 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-290 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-291 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-292 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-293 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-294 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-295 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-296 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-297 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - - - 200 0 - -
- - - - - - - - 300 0
}
do_execsql_test joinD-298 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
FULL JOIN t3 ON t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-299 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
FULL JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-300 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-301 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-302 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-303 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-304 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-305 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON true
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-306 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-307 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-308 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-309 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-310 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-311 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-312 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-313 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-314 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-315 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-316 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
INNER JOIN t3 ON t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-317 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
INNER JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-318 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-319 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-320 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
}
do_execsql_test joinD-321 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
}
do_execsql_test joinD-322 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-323 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
}
do_execsql_test joinD-324 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON true
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-325 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
}
do_execsql_test joinD-326 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
}
do_execsql_test joinD-327 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-328 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
}
do_execsql_test joinD-329 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-330 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-331 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-332 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-333 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
}
do_execsql_test joinD-334 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-335 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
INNER JOIN t3 ON t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-336 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
LEFT JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-337 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
}
do_execsql_test joinD-338 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
}
do_execsql_test joinD-339 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-340 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-341 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-342 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-343 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON true
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-344 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-345 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-346 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-347 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-348 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-349 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-350 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-351 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-352 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-353 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-354 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
INNER JOIN t3 ON t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
}
do_execsql_test joinD-355 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
RIGHT JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-356 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-357 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-358 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-359 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-360 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-361 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-362 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON true
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-363 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
}
do_execsql_test joinD-364 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-365 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-366 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-367 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-368 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-369 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-370 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-371 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-372 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-373 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
INNER JOIN t3 ON t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
}
do_execsql_test joinD-374 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
FULL JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-375 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-376 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-377 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
}
do_execsql_test joinD-378 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
}
do_execsql_test joinD-379 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-380 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
}
do_execsql_test joinD-381 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON true
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-382 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-383 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
}
do_execsql_test joinD-384 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
}
do_execsql_test joinD-385 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
}
do_execsql_test joinD-386 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-387 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-388 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-389 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-390 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
}
do_execsql_test joinD-391 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-392 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-393 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
INNER JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-394 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
}
do_execsql_test joinD-395 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
}
do_execsql_test joinD-396 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
0 100 200 300 - - - - - -
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
}
do_execsql_test joinD-397 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
0 100 200 300 - - - - - -
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
}
do_execsql_test joinD-398 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-399 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
}
do_execsql_test joinD-400 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON true
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-401 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
}
do_execsql_test joinD-402 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
}
do_execsql_test joinD-403 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
}
do_execsql_test joinD-404 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
}
do_execsql_test joinD-405 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-406 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-407 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-408 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-409 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
0 100 200 300 - - - - - -
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
}
do_execsql_test joinD-410 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-411 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-412 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
LEFT JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-413 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
0 100 200 300 - - - - - -
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
}
do_execsql_test joinD-414 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
0 100 200 300 - - - - - -
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
}
do_execsql_test joinD-415 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
- - - - - - - - 300 0
}
do_execsql_test joinD-416 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
- - - - - - - - 300 0
}
do_execsql_test joinD-417 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-418 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
- - - - - - - - 300 0
}
do_execsql_test joinD-419 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON true
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-420 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-421 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
- - - - - - - - 300 0
}
do_execsql_test joinD-422 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
}
do_execsql_test joinD-423 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
}
do_execsql_test joinD-424 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-425 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-426 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-427 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-428 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
- - - - - - - - 300 0
}
do_execsql_test joinD-429 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
}
do_execsql_test joinD-430 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
}
do_execsql_test joinD-431 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
RIGHT JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-432 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
- - - - - - - - 300 0
}
do_execsql_test joinD-433 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
- - - - - - - - 300 0
}
do_execsql_test joinD-434 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
0 100 200 300 - - - - - -
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
- - - - - - - - 300 0
}
do_execsql_test joinD-435 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
0 100 200 300 - - - - - -
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
- - - - - - - - 300 0
}
do_execsql_test joinD-436 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-437 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
- - - - - - - - 300 0
}
do_execsql_test joinD-438 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON true
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-439 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
}
do_execsql_test joinD-440 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
- - - - - - - - 300 0
}
do_execsql_test joinD-441 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
}
do_execsql_test joinD-442 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
}
do_execsql_test joinD-443 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-444 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-445 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-446 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-447 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
0 100 200 300 - - - - - -
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
- - - - - - - - 300 0
}
do_execsql_test joinD-448 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - - - - - 300 0
}
do_execsql_test joinD-449 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
}
do_execsql_test joinD-450 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
FULL JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-451 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
0 100 200 300 - - - - - -
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
- - - - - - - - 300 0
}
do_execsql_test joinD-452 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
0 100 200 300 - - - - - -
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
- - - - - - - - 300 0
}
do_execsql_test joinD-453 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-454 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-455 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-456 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-457 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON true
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-458 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-459 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-460 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-461 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-462 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-463 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-464 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-465 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-466 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-467 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-468 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-469 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
INNER JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-470 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-471 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-472 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
- - - - - - 200 0 - -
}
do_execsql_test joinD-473 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
- - - - - - 200 0 - -
}
do_execsql_test joinD-474 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-475 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
- - - - - - 200 0 - -
}
do_execsql_test joinD-476 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON true
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-477 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
}
do_execsql_test joinD-478 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
}
do_execsql_test joinD-479 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-480 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
- - - - - - 200 0 - -
}
do_execsql_test joinD-481 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-482 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-483 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-484 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-485 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
- - - - - - 200 0 - -
}
do_execsql_test joinD-486 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - 200 0 - -
}
do_execsql_test joinD-487 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-488 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
LEFT JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-489 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
- - - - - - 200 0 - -
}
do_execsql_test joinD-490 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
- - - - - - 200 0 - -
}
do_execsql_test joinD-491 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-492 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-493 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-494 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-495 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON true
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-496 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-497 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-498 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-499 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-500 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-501 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-502 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-503 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-504 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-505 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-506 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
}
do_execsql_test joinD-507 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
RIGHT JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-508 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-509 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-510 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
- - - - - - 200 0 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-511 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
- - - - - - 200 0 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-512 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-513 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
- - - - - - 200 0 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-514 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON true
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-515 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
}
do_execsql_test joinD-516 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-517 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-518 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
- - - - - - 200 0 - -
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-519 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-520 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-521 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-522 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-523 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
- - - - - - 200 0 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-524 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - 200 0 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-525 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
}
do_execsql_test joinD-526 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
FULL JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-527 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
- - - - - - 200 0 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-528 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
- - - - - - 200 0 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-529 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
}
do_execsql_test joinD-530 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
}
do_execsql_test joinD-531 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-532 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
}
do_execsql_test joinD-533 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON true
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-534 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-535 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
}
do_execsql_test joinD-536 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
}
do_execsql_test joinD-537 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
}
do_execsql_test joinD-538 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-539 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-540 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-541 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-542 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
}
do_execsql_test joinD-543 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-544 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
FULL JOIN t3 ON t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-545 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
INNER JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-546 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
}
do_execsql_test joinD-547 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
0 100 200 300 - - - - - -
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
- - - - - - 200 0 - -
}
do_execsql_test joinD-548 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
0 100 200 300 - - - - - -
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
- - - - - - 200 0 - -
}
do_execsql_test joinD-549 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-550 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
- - - - - - 200 0 - -
}
do_execsql_test joinD-551 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON true
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-552 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
}
do_execsql_test joinD-553 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
}
do_execsql_test joinD-554 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
}
do_execsql_test joinD-555 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
- - - - - - 200 0 - -
}
do_execsql_test joinD-556 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-557 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-558 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-559 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-560 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
0 100 200 300 - - - - - -
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
- - - - - - 200 0 - -
}
do_execsql_test joinD-561 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - - - 200 0 - -
}
do_execsql_test joinD-562 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
FULL JOIN t3 ON t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-563 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
LEFT JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-564 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
0 100 200 300 - - - - - -
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
- - - - - - 200 0 - -
}
do_execsql_test joinD-565 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
- - - - - - - - 300 0
}
do_execsql_test joinD-566 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
- - - - - - - - 300 0
}
do_execsql_test joinD-567 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-568 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
- - - - - - - - 300 0
}
do_execsql_test joinD-569 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON true
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-570 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-571 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
- - - - - - - - 300 0
}
do_execsql_test joinD-572 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
}
do_execsql_test joinD-573 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
}
do_execsql_test joinD-574 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-575 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-576 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-577 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-578 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
- - - - - - - - 300 0
}
do_execsql_test joinD-579 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
}
do_execsql_test joinD-580 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
FULL JOIN t3 ON t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-581 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
RIGHT JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-582 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
- - - - - - - - 300 0
}
do_execsql_test joinD-583 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
0 100 200 300 - - - - - -
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
- - - - - - 200 0 - -
- - - - - - - - 300 0
}
do_execsql_test joinD-584 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
0 100 200 300 - - - - - -
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
- - - - - - 200 0 - -
- - - - - - - - 300 0
}
do_execsql_test joinD-585 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-586 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
- - - - - - 200 0 - -
- - - - - - - - 300 0
}
do_execsql_test joinD-587 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON true
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-588 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
}
do_execsql_test joinD-589 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
- - - - - - - - 300 0
}
do_execsql_test joinD-590 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
}
do_execsql_test joinD-591 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
- - - - - - 200 0 - -
}
do_execsql_test joinD-592 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-593 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-594 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-595 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-596 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
0 100 200 300 - - - - - -
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
- - - - - - 200 0 - -
- - - - - - - - 300 0
}
do_execsql_test joinD-597 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - - - 200 0 - -
- - - - - - - - 300 0
}
do_execsql_test joinD-598 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
FULL JOIN t3 ON t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-599 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
FULL JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-600 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
0 100 200 300 - - - - - -
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
- - - - - - 200 0 - -
- - - - - - - - 300 0
}
do_execsql_test joinD-601 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-602 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-603 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-604 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-605 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON true
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-606 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-607 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-608 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-609 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-610 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-611 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-612 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-613 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-614 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-615 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-616 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
INNER JOIN t3 ON t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-617 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
INNER JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-618 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-619 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-620 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-621 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-622 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-623 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-624 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON true
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-625 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-626 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-627 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-628 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-629 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-630 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-631 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-632 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-633 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-634 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-635 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
INNER JOIN t3 ON t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-636 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
LEFT JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-637 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-638 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-639 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-640 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-641 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-642 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-643 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON true
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-644 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-645 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-646 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-647 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-648 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-649 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-650 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-651 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-652 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-653 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-654 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
INNER JOIN t3 ON t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
}
do_execsql_test joinD-655 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
RIGHT JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-656 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-657 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-658 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-659 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-660 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-661 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-662 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON true
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-663 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-664 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-665 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-666 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-667 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-668 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-669 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-670 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-671 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-672 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-673 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
INNER JOIN t3 ON t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
}
do_execsql_test joinD-674 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
FULL JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-675 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-676 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-677 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-678 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-679 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-680 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-681 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON true
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-682 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-683 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-684 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-685 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-686 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-687 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-688 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-689 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-690 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-691 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-692 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-693 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
INNER JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-694 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-695 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-696 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - 100 0 - - - -
}
do_execsql_test joinD-697 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - 100 0 - - - -
}
do_execsql_test joinD-698 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-699 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-700 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON true
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-701 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-702 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - 100 0 - - - -
}
do_execsql_test joinD-703 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-704 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - 100 0 - - - -
}
do_execsql_test joinD-705 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-706 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-707 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-708 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-709 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - 100 0 - - - -
}
do_execsql_test joinD-710 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-711 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-712 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
LEFT JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-713 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - 100 0 - - - -
}
do_execsql_test joinD-714 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - 100 0 - - - -
}
do_execsql_test joinD-715 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-716 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-717 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-718 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-719 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON true
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-720 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-721 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-722 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-723 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-724 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-725 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-726 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-727 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-728 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-729 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
}
do_execsql_test joinD-730 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
}
do_execsql_test joinD-731 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
RIGHT JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-732 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-733 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-734 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - 100 0 - - - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-735 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - 100 0 - - - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-736 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-737 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-738 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON true
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-739 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-740 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - 100 0 - - - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-741 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-742 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - 100 0 - - - -
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-743 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-744 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-745 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-746 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-747 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - 100 0 - - - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-748 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - - - - - 300 0
}
do_execsql_test joinD-749 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
}
do_execsql_test joinD-750 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
FULL JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-751 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - 100 0 - - - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-752 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - 100 0 - - - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-753 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-754 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-755 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-756 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-757 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON true
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-758 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-759 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-760 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-761 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-762 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-763 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-764 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-765 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-766 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-767 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-768 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-769 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
INNER JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-770 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-771 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-772 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
}
do_execsql_test joinD-773 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
}
do_execsql_test joinD-774 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-775 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
}
do_execsql_test joinD-776 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON true
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-777 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
}
do_execsql_test joinD-778 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
}
do_execsql_test joinD-779 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-780 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
}
do_execsql_test joinD-781 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-782 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-783 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-784 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-785 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
}
do_execsql_test joinD-786 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - 200 0 - -
}
do_execsql_test joinD-787 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-788 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
LEFT JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-789 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
}
do_execsql_test joinD-790 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
}
do_execsql_test joinD-791 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-792 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-793 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-794 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-795 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON true
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-796 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-797 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-798 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-799 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-800 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-801 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-802 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-803 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-804 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-805 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-806 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
}
do_execsql_test joinD-807 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
RIGHT JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-808 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-809 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-810 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-811 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-812 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-813 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-814 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON true
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-815 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
}
do_execsql_test joinD-816 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-817 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-818 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-819 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-820 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-821 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-822 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-823 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-824 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - 200 0 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-825 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
}
do_execsql_test joinD-826 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
FULL JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-827 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-828 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 315 15
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 345 45
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 375 75
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-829 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-830 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-831 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-832 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-833 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON true
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-834 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-835 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-836 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-837 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-838 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-839 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-840 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-841 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-842 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-843 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-844 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
FULL JOIN t3 ON t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-845 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
INNER JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-846 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-847 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - 100 0 - - - -
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
}
do_execsql_test joinD-848 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - 100 0 - - - -
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
}
do_execsql_test joinD-849 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-850 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
}
do_execsql_test joinD-851 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON true
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-852 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
}
do_execsql_test joinD-853 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - 100 0 - - - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
}
do_execsql_test joinD-854 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-855 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - 100 0 - - - -
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
}
do_execsql_test joinD-856 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-857 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-858 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-859 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-860 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - 100 0 - - - -
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
}
do_execsql_test joinD-861 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - - - 200 0 - -
}
do_execsql_test joinD-862 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
FULL JOIN t3 ON t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-863 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
LEFT JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-864 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - 100 0 - - - -
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
}
do_execsql_test joinD-865 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-866 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-867 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-868 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-869 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON true
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-870 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-871 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-872 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-873 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-874 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-875 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-876 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-877 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-878 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-879 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
}
do_execsql_test joinD-880 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
FULL JOIN t3 ON t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-881 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
RIGHT JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-882 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-883 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - 100 0 - - - -
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-884 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - 100 0 - - - -
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-885 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-886 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-887 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON true
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-888 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
}
do_execsql_test joinD-889 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - 100 0 - - - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-890 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-891 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - 100 0 - - - -
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-892 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-893 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-894 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-895 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-896 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - 100 0 - - - -
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-897 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - - - 200 0 - -
- - - - - - - - 300 0
}
do_execsql_test joinD-898 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
FULL JOIN t3 ON t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-899 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
FULL JOIN t4 ON t4.z>0
WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-900 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
- - - - 100 0 - - - -
- - - - - - 200 0 - -
- - - - - - 203 3 - -
- - - - - - 209 9 - -
- - - - - - 215 15 - -
- - - - - - 221 21 - -
- - - - - - 227 27 - -
- - - - - - 233 33 - -
- - - - - - 239 39 - -
- - - - - - 245 45 - -
- - - - - - 251 51 - -
- - - - - - 257 57 - -
- - - - - - 263 63 - -
- - - - - - 269 69 - -
- - - - - - 275 75 - -
- - - - - - 281 81 - -
- - - - - - 287 87 - -
- - - - - - 293 93 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 315 15
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 345 45
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 375 75
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-901 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-902 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-903 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-904 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON true
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-905 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-906 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-907 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-908 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-909 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-910 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-911 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-912 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-913 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-914 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b = t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-915 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
INNER JOIN t3 ON t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-916 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
INNER JOIN t4 ON t4.z>0
WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-917 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-918 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
}
do_execsql_test joinD-919 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-920 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
}
do_execsql_test joinD-921 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON true
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-922 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
}
do_execsql_test joinD-923 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
}
do_execsql_test joinD-924 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-925 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
}
do_execsql_test joinD-926 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-927 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-928 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-929 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-930 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
}
do_execsql_test joinD-931 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b = t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-932 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
INNER JOIN t3 ON t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-933 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
LEFT JOIN t4 ON t4.z>0
WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-934 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
}
do_execsql_test joinD-935 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-936 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-937 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-938 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON true
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-939 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-940 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-941 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-942 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-943 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-944 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-945 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-946 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-947 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-948 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b = t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-949 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
INNER JOIN t3 ON t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-950 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
RIGHT JOIN t4 ON t4.z>0
WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-951 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-952 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-953 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-954 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-955 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON true
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-956 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
}
do_execsql_test joinD-957 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-958 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-959 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-960 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-961 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-962 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-963 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
INNER JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-964 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-965 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
WHERE t1.b = t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-966 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
INNER JOIN t3 ON t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-967 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
FULL JOIN t4 ON t4.z>0
WHERE t1.b = t2.b AND t1.d = t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-968 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-969 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
}
do_execsql_test joinD-970 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-971 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
}
do_execsql_test joinD-972 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON true
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-973 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-974 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
}
do_execsql_test joinD-975 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
}
do_execsql_test joinD-976 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
}
do_execsql_test joinD-977 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-978 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-979 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-980 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-981 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
}
do_execsql_test joinD-982 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b = t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-983 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-984 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
INNER JOIN t4 ON t4.z>0
WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-985 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
}
do_execsql_test joinD-986 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
0 100 200 300 - - - - - -
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
- - - - 100 0 - - - -
}
do_execsql_test joinD-987 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-988 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
}
do_execsql_test joinD-989 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON true
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-990 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
}
do_execsql_test joinD-991 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
- - - - 100 0 - - - -
}
do_execsql_test joinD-992 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
}
do_execsql_test joinD-993 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
- - - - 100 0 - - - -
}
do_execsql_test joinD-994 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-995 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-996 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-997 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-998 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
0 100 200 300 - - - - - -
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
- - - - 100 0 - - - -
}
do_execsql_test joinD-999 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b = t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-1000 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1001 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
LEFT JOIN t4 ON t4.z>0
WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1002 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
0 100 200 300 - - - - - -
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
- - - - 100 0 - - - -
}
do_execsql_test joinD-1003 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
- - - - - - - - 300 0
}
do_execsql_test joinD-1004 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1005 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
- - - - - - - - 300 0
}
do_execsql_test joinD-1006 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON true
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1007 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1008 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
- - - - - - - - 300 0
}
do_execsql_test joinD-1009 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
}
do_execsql_test joinD-1010 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
}
do_execsql_test joinD-1011 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1012 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1013 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1014 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1015 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
- - - - - - - - 300 0
}
do_execsql_test joinD-1016 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b = t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1017 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1018 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
RIGHT JOIN t4 ON t4.z>0
WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1019 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
- - - - - - - - 300 0
}
do_execsql_test joinD-1020 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
0 100 200 300 - - - - - -
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
- - - - 100 0 - - - -
- - - - - - - - 300 0
}
do_execsql_test joinD-1021 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-1022 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
- - - - - - - - 300 0
}
do_execsql_test joinD-1023 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON true
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-1024 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
}
do_execsql_test joinD-1025 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
- - - - 100 0 - - - -
- - - - - - - - 300 0
}
do_execsql_test joinD-1026 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
}
do_execsql_test joinD-1027 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
- - - - 100 0 - - - -
}
do_execsql_test joinD-1028 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1029 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1030 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1031 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
LEFT JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1032 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
0 100 200 300 - - - - - -
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
- - - - 100 0 - - - -
- - - - - - - - 300 0
}
do_execsql_test joinD-1033 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
WHERE t1.b = t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-1034 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1035 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
FULL JOIN t4 ON t4.z>0
WHERE t1.b = t2.b AND t1.d = t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1036 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
0 100 200 300 - - - - - -
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
- - - - 100 0 - - - -
- - - - - - - - 300 0
}
do_execsql_test joinD-1037 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1038 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1039 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1040 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON true
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1041 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1042 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1043 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1044 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1045 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1046 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1047 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1048 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1049 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1050 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b = t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1051 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1052 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
INNER JOIN t4 ON t4.z>0
WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1053 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1054 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
- - - - - - 200 0 - -
}
do_execsql_test joinD-1055 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1056 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
- - - - - - 200 0 - -
}
do_execsql_test joinD-1057 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON true
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1058 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
}
do_execsql_test joinD-1059 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
}
do_execsql_test joinD-1060 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1061 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
- - - - - - 200 0 - -
}
do_execsql_test joinD-1062 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1063 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1064 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1065 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1066 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
- - - - - - 200 0 - -
}
do_execsql_test joinD-1067 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b = t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1068 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1069 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
LEFT JOIN t4 ON t4.z>0
WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1070 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
- - - - - - 200 0 - -
}
do_execsql_test joinD-1071 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-1072 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1073 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-1074 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON true
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1075 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1076 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-1077 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-1078 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-1079 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1080 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1081 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1082 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1083 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-1084 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b = t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1085 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1086 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
RIGHT JOIN t4 ON t4.z>0
WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1087 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-1088 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
- - - - - - 200 0 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-1089 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1090 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
- - - - - - 200 0 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-1091 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON true
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1092 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
}
do_execsql_test joinD-1093 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-1094 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-1095 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
- - - - - - 200 0 - -
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-1096 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1097 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1098 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1099 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
RIGHT JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1100 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
- - - - - - 200 0 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-1101 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
WHERE t1.b = t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1102 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1103 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
FULL JOIN t4 ON t4.z>0
WHERE t1.b = t2.b AND t1.d = t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1104 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
- - - - - - 200 0 - -
- - - - - - - - 300 0
- - - - - - - - 305 5
- - - - - - - - 310 10
- - - - - - - - 320 20
- - - - - - - - 325 25
- - - - - - - - 335 35
- - - - - - - - 340 40
- - - - - - - - 350 50
- - - - - - - - 355 55
- - - - - - - - 365 65
- - - - - - - - 370 70
- - - - - - - - 380 80
- - - - - - - - 385 85
- - - - - - - - 395 95
}
do_execsql_test joinD-1105 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
}
do_execsql_test joinD-1106 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1107 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
}
do_execsql_test joinD-1108 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON true
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1109 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1110 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
}
do_execsql_test joinD-1111 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
}
do_execsql_test joinD-1112 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
}
do_execsql_test joinD-1113 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
INNER JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1114 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1115 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1116 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c
INNER JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1117 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
}
do_execsql_test joinD-1118 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b = t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1119 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
FULL JOIN t3 ON t3.y>0
INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b = t2.b AND t1.c = t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1120 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
INNER JOIN t4 ON t4.z>0
WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1121 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
0 100 200 300 - - - - - -
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
- - - - 100 0 - - - -
- - - - - - 200 0 - -
}
do_execsql_test joinD-1122 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-1123 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
- - - - - - 200 0 - -
}
do_execsql_test joinD-1124 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON true
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-1125 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
}
do_execsql_test joinD-1126 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
- - - - 100 0 - - - -
}
do_execsql_test joinD-1127 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
}
do_execsql_test joinD-1128 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
- - - - 100 0 - - - -
- - - - - - 200 0 - -
}
do_execsql_test joinD-1129 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1130 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1131 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1132 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c
LEFT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1133 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
0 100 200 300 - - - - - -
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
- - - - 100 0 - - - -
- - - - - - 200 0 - -
}
do_execsql_test joinD-1134 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b = t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-1135 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
FULL JOIN t3 ON t3.y>0
LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b = t2.b AND t1.c = t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1136 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
LEFT JOIN t4 ON t4.z>0
WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1137 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
- - - - - - - - 300 0
}
do_execsql_test joinD-1138 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1139 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
- - - - - - - - 300 0
}
do_execsql_test joinD-1140 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON true
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1141 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1142 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
- - - - - - - - 300 0
}
do_execsql_test joinD-1143 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
}
do_execsql_test joinD-1144 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
}
do_execsql_test joinD-1145 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1146 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1147 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1148 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c
RIGHT JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1149 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
- - - - - - - - 300 0
}
do_execsql_test joinD-1150 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b = t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1151 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
FULL JOIN t3 ON t3.y>0
RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
WHERE t1.b = t2.b AND t1.c = t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1152 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
RIGHT JOIN t4 ON t4.z>0
WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1153 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
0 100 200 300 - - - - - -
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
- - - - 100 0 - - - -
- - - - - - 200 0 - -
- - - - - - - - 300 0
}
do_execsql_test joinD-1154 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-1155 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE (t2.x>0 OR t2.x IS NULL)
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
- - - - - - 200 0 - -
- - - - - - - - 300 0
}
do_execsql_test joinD-1156 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON true
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t1.b=t2.b AND t2.x>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-1157 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
3 103 203 303 - - 203 3 - -
6 106 206 306 106 6 206 6 - -
9 109 209 309 - - 209 9 - -
12 112 212 312 112 12 212 12 - -
15 115 215 315 - - 215 15 315 15
18 118 218 318 118 18 218 18 - -
21 121 221 321 - - 221 21 - -
24 124 224 324 124 24 224 24 - -
27 127 227 327 - - 227 27 - -
30 130 230 330 130 30 230 30 330 30
33 133 233 333 - - 233 33 - -
36 136 236 336 136 36 236 36 - -
39 139 239 339 - - 239 39 - -
42 142 242 342 142 42 242 42 - -
45 145 245 345 - - 245 45 345 45
48 148 248 348 148 48 248 48 - -
51 151 251 351 - - 251 51 - -
54 154 254 354 154 54 254 54 - -
57 157 257 357 - - 257 57 - -
60 160 260 360 160 60 260 60 360 60
63 163 263 363 - - 263 63 - -
66 166 266 366 166 66 266 66 - -
69 169 269 369 - - 269 69 - -
72 172 272 372 172 72 272 72 - -
75 175 275 375 - - 275 75 375 75
78 178 278 378 178 78 278 78 - -
81 181 281 381 - - 281 81 - -
84 184 284 384 184 84 284 84 - -
87 187 287 387 - - 287 87 - -
90 190 290 390 190 90 290 90 390 90
93 193 293 393 - - 293 93 - -
}
do_execsql_test joinD-1158 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t3.y>0 OR t3.y IS NULL
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
- - - - 100 0 - - - -
- - - - - - - - 300 0
}
do_execsql_test joinD-1159 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
5 105 205 305 - - - - 305 5
10 110 210 310 110 10 - - 310 10
15 115 215 315 - - 215 15 315 15
20 120 220 320 120 20 - - 320 20
25 125 225 325 - - - - 325 25
30 130 230 330 130 30 230 30 330 30
35 135 235 335 - - - - 335 35
40 140 240 340 140 40 - - 340 40
45 145 245 345 - - 245 45 345 45
50 150 250 350 150 50 - - 350 50
55 155 255 355 - - - - 355 55
60 160 260 360 160 60 260 60 360 60
65 165 265 365 - - - - 365 65
70 170 270 370 170 70 - - 370 70
75 175 275 375 - - 275 75 375 75
80 180 280 380 180 80 - - 380 80
85 185 285 385 - - - - 385 85
90 190 290 390 190 90 290 90 390 90
95 195 295 395 - - - - 395 95
}
do_execsql_test joinD-1160 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z IS NULL OR t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
- - - - 100 0 - - - -
- - - - - - 200 0 - -
}
do_execsql_test joinD-1161 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
FULL JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1162 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
FULL JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d
WHERE t4.z>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
15 115 215 315 - - 215 15 315 15
30 130 230 330 130 30 230 30 330 30
45 145 245 345 - - 245 45 345 45
60 160 260 360 160 60 260 60 360 60
75 175 275 375 - - 275 75 375 75
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1163 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
WHERE t2.x>0 AND t3.y>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1164 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b=t2.b
FULL JOIN t3 ON t1.c=t3.c
FULL JOIN t4 ON t1.d=t4.d
WHERE t2.x>0 AND t3.y>0 AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
30 130 230 330 130 30 230 30 330 30
60 160 260 360 160 60 260 60 360 60
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1165 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
0 100 200 300 - - - - - -
1 101 201 301 - - - - - -
2 102 202 302 102 2 - - - -
3 103 203 303 - - 203 3 - -
4 104 204 304 104 4 - - - -
5 105 205 305 - - - - 305 5
6 106 206 306 106 6 206 6 - -
7 107 207 307 - - - - - -
8 108 208 308 108 8 - - - -
9 109 209 309 - - 209 9 - -
10 110 210 310 110 10 - - 310 10
11 111 211 311 - - - - - -
12 112 212 312 112 12 212 12 - -
13 113 213 313 - - - - - -
14 114 214 314 114 14 - - - -
15 115 215 315 - - 215 15 315 15
16 116 216 316 116 16 - - - -
17 117 217 317 - - - - - -
18 118 218 318 118 18 218 18 - -
19 119 219 319 - - - - - -
20 120 220 320 120 20 - - 320 20
21 121 221 321 - - 221 21 - -
22 122 222 322 122 22 - - - -
23 123 223 323 - - - - - -
24 124 224 324 124 24 224 24 - -
25 125 225 325 - - - - 325 25
26 126 226 326 126 26 - - - -
27 127 227 327 - - 227 27 - -
28 128 228 328 128 28 - - - -
29 129 229 329 - - - - - -
30 130 230 330 130 30 230 30 330 30
31 131 231 331 - - - - - -
32 132 232 332 132 32 - - - -
33 133 233 333 - - 233 33 - -
34 134 234 334 134 34 - - - -
35 135 235 335 - - - - 335 35
36 136 236 336 136 36 236 36 - -
37 137 237 337 - - - - - -
38 138 238 338 138 38 - - - -
39 139 239 339 - - 239 39 - -
40 140 240 340 140 40 - - 340 40
41 141 241 341 - - - - - -
42 142 242 342 142 42 242 42 - -
43 143 243 343 - - - - - -
44 144 244 344 144 44 - - - -
45 145 245 345 - - 245 45 345 45
46 146 246 346 146 46 - - - -
47 147 247 347 - - - - - -
48 148 248 348 148 48 248 48 - -
49 149 249 349 - - - - - -
50 150 250 350 150 50 - - 350 50
51 151 251 351 - - 251 51 - -
52 152 252 352 152 52 - - - -
53 153 253 353 - - - - - -
54 154 254 354 154 54 254 54 - -
55 155 255 355 - - - - 355 55
56 156 256 356 156 56 - - - -
57 157 257 357 - - 257 57 - -
58 158 258 358 158 58 - - - -
59 159 259 359 - - - - - -
60 160 260 360 160 60 260 60 360 60
61 161 261 361 - - - - - -
62 162 262 362 162 62 - - - -
63 163 263 363 - - 263 63 - -
64 164 264 364 164 64 - - - -
65 165 265 365 - - - - 365 65
66 166 266 366 166 66 266 66 - -
67 167 267 367 - - - - - -
68 168 268 368 168 68 - - - -
69 169 269 369 - - 269 69 - -
70 170 270 370 170 70 - - 370 70
71 171 271 371 - - - - - -
72 172 272 372 172 72 272 72 - -
73 173 273 373 - - - - - -
74 174 274 374 174 74 - - - -
75 175 275 375 - - 275 75 375 75
76 176 276 376 176 76 - - - -
77 177 277 377 - - - - - -
78 178 278 378 178 78 278 78 - -
79 179 279 379 - - - - - -
80 180 280 380 180 80 - - 380 80
81 181 281 381 - - 281 81 - -
82 182 282 382 182 82 - - - -
83 183 283 383 - - - - - -
84 184 284 384 184 84 284 84 - -
85 185 285 385 - - - - 385 85
86 186 286 386 186 86 - - - -
87 187 287 387 - - 287 87 - -
88 188 288 388 188 88 - - - -
89 189 289 389 - - - - - -
90 190 290 390 190 90 290 90 390 90
91 191 291 391 - - - - - -
92 192 292 392 192 92 - - - -
93 193 293 393 - - 293 93 - -
94 194 294 394 194 94 - - - -
95 195 295 395 - - - - 395 95
96 - 296 396 - - - - - -
97 197 - 397 - - - - - -
98 198 298 - - - - - - -
99 - - - - - - - - -
- - - - 100 0 - - - -
- - - - - - 200 0 - -
- - - - - - - - 300 0
}
do_execsql_test joinD-1166 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
WHERE t1.b = t2.b
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
2 102 202 302 102 2 - - - -
4 104 204 304 104 4 - - - -
6 106 206 306 106 6 206 6 - -
8 108 208 308 108 8 - - - -
10 110 210 310 110 10 - - 310 10
12 112 212 312 112 12 212 12 - -
14 114 214 314 114 14 - - - -
16 116 216 316 116 16 - - - -
18 118 218 318 118 18 218 18 - -
20 120 220 320 120 20 - - 320 20
22 122 222 322 122 22 - - - -
24 124 224 324 124 24 224 24 - -
26 126 226 326 126 26 - - - -
28 128 228 328 128 28 - - - -
30 130 230 330 130 30 230 30 330 30
32 132 232 332 132 32 - - - -
34 134 234 334 134 34 - - - -
36 136 236 336 136 36 236 36 - -
38 138 238 338 138 38 - - - -
40 140 240 340 140 40 - - 340 40
42 142 242 342 142 42 242 42 - -
44 144 244 344 144 44 - - - -
46 146 246 346 146 46 - - - -
48 148 248 348 148 48 248 48 - -
50 150 250 350 150 50 - - 350 50
52 152 252 352 152 52 - - - -
54 154 254 354 154 54 254 54 - -
56 156 256 356 156 56 - - - -
58 158 258 358 158 58 - - - -
60 160 260 360 160 60 260 60 360 60
62 162 262 362 162 62 - - - -
64 164 264 364 164 64 - - - -
66 166 266 366 166 66 266 66 - -
68 168 268 368 168 68 - - - -
70 170 270 370 170 70 - - 370 70
72 172 272 372 172 72 272 72 - -
74 174 274 374 174 74 - - - -
76 176 276 376 176 76 - - - -
78 178 278 378 178 78 278 78 - -
80 180 280 380 180 80 - - 380 80
82 182 282 382 182 82 - - - -
84 184 284 384 184 84 284 84 - -
86 186 286 386 186 86 - - - -
88 188 288 388 188 88 - - - -
90 190 290 390 190 90 290 90 390 90
92 192 292 392 192 92 - - - -
94 194 294 394 194 94 - - - -
}
do_execsql_test joinD-1167 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
FULL JOIN t3 ON t3.y>0
FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
WHERE t1.b = t2.b AND t1.c = t3.c
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
6 106 206 306 106 6 206 6 - -
12 112 212 312 112 12 212 12 - -
18 118 218 318 118 18 218 18 - -
24 124 224 324 124 24 224 24 - -
30 130 230 330 130 30 230 30 330 30
36 136 236 336 136 36 236 36 - -
42 142 242 342 142 42 242 42 - -
48 148 248 348 148 48 248 48 - -
54 154 254 354 154 54 254 54 - -
60 160 260 360 160 60 260 60 360 60
66 166 266 366 166 66 266 66 - -
72 172 272 372 172 72 272 72 - -
78 178 278 378 178 78 278 78 - -
84 184 284 384 184 84 284 84 - -
90 190 290 390 190 90 290 90 390 90
}
do_execsql_test joinD-1168 {
SELECT t1.*, t2.*, t3.*, t4.*
FROM t1 FULL JOIN t2 ON t2.x>0
FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
FULL JOIN t4 ON t4.z>0
WHERE t1.b = t2.b AND t1.d = t4.d
ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
} {
10 110 210 310 110 10 - - 310 10
20 120 220 320 120 20 - - 320 20
30 130 230 330 130 30 230 30 330 30
40 140 240 340 140 40 - - 340 40
50 150 250 350 150 50 - - 350 50
60 160 260 360 160 60 260 60 360 60
70 170 270 370 170 70 - - 370 70
80 180 280 380 180 80 - - 380 80
90 190 290 390 190 90 290 90 390 90
}
#############################################################################
# The following are extra tests added manually
do_execsql_test joinD-extra-1000 {
CREATE VIEW v1 AS
SELECT *
FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0;
CREATE TRIGGER v1r1 INSTEAD OF UPDATE OF c ON v1 BEGIN
UPDATE t1 SET c=new.c WHERE (a,b,c,d) IS (old.a,old.b,old.c,old.d);
UPDATE t3 SET c=new.c WHERE (c,y) IS (old.c,old.y);
END;
SELECT * FROM v1 WHERE y BETWEEN 30 AND 40 ORDER BY y;
} {
30 130 230 330 130 30 230 30 330 30
- - - - - - 233 33 - -
36 136 236 336 136 36 236 36 - -
- - - - - - 239 39 - -
}
do_execsql_test joinD-extra-1010 {
BEGIN;
UPDATE v1 SET c=c+1000 WHERE y BETWEEN 30 and 40;
SELECT * FROM v1 WHERE y BETWEEN 30 AND 40 ORDER BY y;
ROLLBACK;
} {
30 130 1230 330 130 30 1230 30 330 30
- - - - - - 233 33 - -
36 136 1236 336 136 36 1236 36 - -
- - - - - - 239 39 - -
}
finish_test
#############################################################################
# This is the TCL script used to generate the psql script that generated
# the data above.
#
# puts "
# \\pset border off
# \\pset tuples_only on
# \\pset null -
#
# DROP TABLE IF EXISTS t1;
# DROP TABLE IF EXISTS t2;
# DROP TABLE IF EXISTS t3;
# DROP TABLE IF EXISTS t4;
# CREATE TABLE t1(a INT, b INT, c INT, d INT);
# WITH RECURSIVE c(x) AS (VALUES(0) UNION ALL SELECT x+1 FROM c WHERE x<95)
# INSERT INTO t1(a,b,c,d) SELECT x, x+100, x+200, x+300 FROM c;
# CREATE TABLE t2(b INT, x INT);
# INSERT INTO t2(b,x) SELECT b, a FROM t1 WHERE a%2=0;
# CREATE INDEX t2b ON t2(b);
# CREATE TABLE t3(c INT, y INT);
# INSERT INTO t3(c,y) SELECT c, a FROM t1 WHERE a%3=0;
# CREATE INDEX t3c ON t3(c);
# CREATE TABLE t4(d INT, z INT);
# INSERT INTO t4(d,z) SELECT d, a FROM t1 WHERE a%5=0;
# CREATE INDEX t4d ON t4(d);
# INSERT INTO t1(a,b,c,d) VALUES
# (96,NULL,296,396),
# (97,197,NULL,397),
# (98,198,298,NULL),
# (99,NULL,NULL,NULL);
# "
#
# proc echo {prefix txt} {
# regsub -all {\n} $txt \n$prefix txt
# puts "$prefix$txt"
# }
#
# set n 0
# foreach j1 {INNER LEFT RIGHT FULL} {
# foreach j2 {INNER LEFT RIGHT FULL} {
# foreach j3 {INNER LEFT RIGHT FULL} {
#
# incr n
# set q1 ""
# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n"
# append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b AND t2.x>0\n"
# append q1 " $j2 JOIN t3 ON t1.c=t3.c AND t3.y>0\n"
# append q1 " $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n"
# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);"
#
# echo "\\qecho " "do_execsql_test joinB-$n \{"
# echo "\\qecho X " $q1
# echo "\\qecho " "\} \{"
# puts $q1
# echo "\\qecho " "\}"
#
# if {$j1!="FULL"} {
# incr n
# set q1 ""
# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n"
# append q1 " FROM t1 $j1 JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0\n"
# append q1 " $j2 JOIN t3 ON t1.c=t3.c AND t3.y>0\n"
# append q1 " $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n"
# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);"
#
# echo "\\qecho " "do_execsql_test joinB-$n \{"
# echo "\\qecho X " $q1
# echo "\\qecho " "\} \{"
# puts $q1
# echo "\\qecho " "\}"
# }
#
# incr n
# set q1 ""
# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n"
# append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b\n"
# append q1 " $j2 JOIN t3 ON t1.c=t3.c AND t3.y>0\n"
# append q1 " $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n"
# append q1 " WHERE t2.x>0\n"
# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);"
#
# echo "\\qecho " "do_execsql_test joinB-$n \{"
# echo "\\qecho X " $q1
# echo "\\qecho " "\} \{"
# puts $q1
# echo "\\qecho " "\}"
#
# incr n
# set q1 ""
# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n"
# append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b\n"
# append q1 " $j2 JOIN t3 ON t1.c=t3.c AND t3.y>0\n"
# append q1 " $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n"
# append q1 " WHERE (t2.x>0 OR t2.x IS NULL)\n"
# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);"
#
# echo "\\qecho " "do_execsql_test joinB-$n \{"
# echo "\\qecho X " $q1
# echo "\\qecho " "\} \{"
# puts $q1
# echo "\\qecho " "\}"
#
# incr n
# set q1 ""
# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n"
# append q1 " FROM t1 $j1 JOIN t2 ON true\n"
# append q1 " $j2 JOIN t3 ON t1.c=t3.c AND t3.y>0\n"
# append q1 " $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n"
# append q1 " WHERE t1.b=t2.b AND t2.x>0\n"
# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);"
#
# echo "\\qecho " "do_execsql_test joinB-$n \{"
# echo "\\qecho X " $q1
# echo "\\qecho " "\} \{"
# puts $q1
# echo "\\qecho " "\}"
#
# incr n
# set q1 ""
# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n"
# append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b AND t2.x>0\n"
# append q1 " $j2 JOIN t3 ON t1.c=t3.c\n"
# append q1 " $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n"
# append q1 " WHERE t3.y>0\n"
# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);"
#
# echo "\\qecho " "do_execsql_test joinB-$n \{"
# echo "\\qecho X " $q1
# echo "\\qecho " "\} \{"
# puts $q1
# echo "\\qecho " "\}"
#
# incr n
# set q1 ""
# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n"
# append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b AND t2.x>0\n"
# append q1 " $j2 JOIN t3 ON t1.c=t3.c\n"
# append q1 " $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n"
# append q1 " WHERE t3.y>0 OR t3.y IS NULL\n"
# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);"
#
# echo "\\qecho " "do_execsql_test joinB-$n \{"
# echo "\\qecho X " $q1
# echo "\\qecho " "\} \{"
# puts $q1
# echo "\\qecho " "\}"
#
# incr n
# set q1 ""
# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n"
# append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b AND t2.x>0\n"
# append q1 " $j2 JOIN t3 ON t1.c=t3.c AND t3.y>0\n"
# append q1 " $j3 JOIN t4 ON t1.d=t4.d\n"
# append q1 " WHERE t4.z>0\n"
# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);"
#
# echo "\\qecho " "do_execsql_test joinB-$n \{"
# echo "\\qecho X " $q1
# echo "\\qecho " "\} \{"
# puts $q1
# echo "\\qecho " "\}"
#
# incr n
# set q1 ""
# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n"
# append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b AND t2.x>0\n"
# append q1 " $j2 JOIN t3 ON t1.c=t3.c AND t3.y>0\n"
# append q1 " $j3 JOIN t4 ON t1.d=t4.d\n"
# append q1 " WHERE t4.z IS NULL OR t4.z>0\n"
# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);"
#
# echo "\\qecho " "do_execsql_test joinB-$n \{"
# echo "\\qecho X " $q1
# echo "\\qecho " "\} \{"
# puts $q1
# echo "\\qecho " "\}"
#
# incr n
# set q1 ""
# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n"
# append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b\n"
# append q1 " $j2 JOIN t3 ON t1.c=t3.c AND t3.y>0\n"
# append q1 " $j3 JOIN t4 ON t1.d=t4.d\n"
# append q1 " WHERE t2.x>0 AND t4.z>0\n"
# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);"
#
# echo "\\qecho " "do_execsql_test joinB-$n \{"
# echo "\\qecho X " $q1
# echo "\\qecho " "\} \{"
# puts $q1
# echo "\\qecho " "\}"
#
# incr n
# set q1 ""
# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n"
# append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b AND t2.x>0\n"
# append q1 " $j2 JOIN t3 ON t1.c=t3.c\n"
# append q1 " $j3 JOIN t4 ON t1.d=t4.d\n"
# append q1 " WHERE t4.z>0 AND t3.y>0\n"
# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);"
#
# echo "\\qecho " "do_execsql_test joinB-$n \{"
# echo "\\qecho X " $q1
# echo "\\qecho " "\} \{"
# puts $q1
# echo "\\qecho " "\}"
#
# incr n
# set q1 ""
# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n"
# append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b\n"
# append q1 " $j2 JOIN t3 ON t1.c=t3.c\n"
# append q1 " $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n"
# append q1 " WHERE t2.x>0 AND t3.y>0\n"
# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);"
#
# echo "\\qecho " "do_execsql_test joinB-$n \{"
# echo "\\qecho X " $q1
# echo "\\qecho " "\} \{"
# puts $q1
# echo "\\qecho " "\}"
#
# incr n
# set q1 ""
# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n"
# append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b\n"
# append q1 " $j2 JOIN t3 ON t1.c=t3.c\n"
# append q1 " $j3 JOIN t4 ON t1.d=t4.d\n"
# append q1 " WHERE t2.x>0 AND t3.y>0 AND t4.z>0\n"
# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);"
#
# echo "\\qecho " "do_execsql_test joinB-$n \{"
# echo "\\qecho X " $q1
# echo "\\qecho " "\} \{"
# puts $q1
# echo "\\qecho " "\}"
#
# set op1 [expr {$j1=="FULL"?"=":"IS NOT DISTINCT FROM"}]
# set op2 [expr {$j2=="FULL"?"=":"IS NOT DISTINCT FROM"}]
# set op3 [expr {$j3=="FULL"?"=":"IS NOT DISTINCT FROM"}]
# incr n
# set q1 ""
# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n"
# append q1 " FROM t1 $j1 JOIN t2 ON t1.b $op1 t2.b AND t2.x>0\n"
# append q1 " $j2 JOIN t3 ON t1.c $op2 t3.c AND t3.y>0\n"
# append q1 " $j3 JOIN t4 ON t1.d $op3 t4.d AND t4.z>0\n"
# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);"
#
# echo "\\qecho " "do_execsql_test joinB-$n \{"
# echo "\\qecho X " $q1
# echo "\\qecho " "\} \{"
# puts $q1
# echo "\\qecho " "\}"
#
# incr n
# set q1 ""
# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n"
# append q1 " FROM t1 $j1 JOIN t2 ON t2.x>0\n"
# append q1 " $j2 JOIN t3 ON t1.c $op2 t3.c AND t3.y>0\n"
# append q1 " $j3 JOIN t4 ON t1.d $op3 t4.d AND t4.z>0\n"
# append q1 " WHERE t1.b $op1 t2.b\n"
# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);"
#
# echo "\\qecho " "do_execsql_test joinB-$n \{"
# echo "\\qecho X " $q1
# echo "\\qecho " "\} \{"
# puts $q1
# echo "\\qecho " "\}"
#
# incr n
# set q1 ""
# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n"
# append q1 " FROM t1 $j1 JOIN t2 ON t2.x>0\n"
# append q1 " $j2 JOIN t3 ON t3.y>0\n"
# append q1 " $j3 JOIN t4 ON t1.d $op3 t4.d AND t4.z>0\n"
# append q1 " WHERE t1.b $op1 t2.b AND t1.c $op2 t3.c\n"
# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);"
#
# echo "\\qecho " "do_execsql_test joinB-$n \{"
# echo "\\qecho X " $q1
# echo "\\qecho " "\} \{"
# puts $q1
# echo "\\qecho " "\}"
#
# incr n
# set q1 ""
# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n"
# append q1 " FROM t1 $j1 JOIN t2 ON t2.x>0\n"
# append q1 " $j2 JOIN t3 ON t1.c $op2 t3.c AND t3.y>0\n"
# append q1 " $j3 JOIN t4 ON t4.z>0\n"
# append q1 " WHERE t1.b $op1 t2.b AND t1.d $op3 t4.d\n"
# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);"
#
# echo "\\qecho " "do_execsql_test joinB-$n \{"
# echo "\\qecho X " $q1
# echo "\\qecho " "\} \{"
# puts $q1
# echo "\\qecho " "\}"
#
# if {$j1!="FULL"} {
# incr n
# set q1 ""
# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n"
# append q1 " FROM t1 $j1 JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0\n"
# append q1 " $j2 JOIN t3 ON t1.c=t3.c AND t3.y>0\n"
# append q1 " $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n"
# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);"
#
# echo "\\qecho " "do_execsql_test joinB-$n \{"
# echo "\\qecho X " $q1
# echo "\\qecho " "\} \{"
# puts $q1
# echo "\\qecho " "\}"
# }
#
# if {$j2!="FULL"} {
# incr n
# set q1 ""
# append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n"
# append q1 " FROM t1 $j1 JOIN t2 ON t1.b=t2.b AND t2.x>0\n"
# append q1 " $j2 JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0\n"
# append q1 " $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n"
# append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);"
#
# echo "\\qecho " "do_execsql_test joinB-$n \{"
# echo "\\qecho X " $q1
# echo "\\qecho " "\} \{"
# puts $q1
# echo "\\qecho " "\}"
# }
# }
# }
# }
#