Improved tests for rescans / nested loop joins [skip ci]

(cherry picked from commit 721fcf4d2c92e2ef022c42304d547b807cbfbee1)
This commit is contained in:
Andrew Kane
2026-07-28 09:08:02 -07:00
committed by zeekay
parent cdb5755e18
commit 1d5cb54402
4 changed files with 6 additions and 8 deletions
+2 -3
View File
@@ -78,14 +78,13 @@ SELECT COUNT(*) FROM (SELECT * FROM t ORDER BY val <=> (SELECT NULL::vector)) t2
3
(1 row)
SELECT * FROM t CROSS JOIN LATERAL (SELECT * FROM t t2 ORDER BY val <=> t.val LIMIT 1) t2 WHERE t.val IS NOT NULL ORDER BY t.val;
SELECT * FROM t CROSS JOIN LATERAL (SELECT * FROM t t2 ORDER BY val <=> t.val LIMIT 1) t2 WHERE t.val != '[0,0,0]' ORDER BY t.val;
val | val
---------+---------
[0,0,0] | [1,1,1]
[1,1,1] | [1,1,1]
[1,2,3] | [1,2,3]
[1,2,4] | [1,2,4]
(4 rows)
(3 rows)
DROP TABLE t;
-- L1
+2 -3
View File
@@ -81,14 +81,13 @@ SELECT COUNT(*) FROM (SELECT * FROM t ORDER BY val <=> (SELECT NULL::vector)) t2
3
(1 row)
SELECT * FROM t CROSS JOIN LATERAL (SELECT * FROM t t2 ORDER BY val <=> t.val LIMIT 1) t2 WHERE t.val IS NOT NULL ORDER BY t.val;
SELECT * FROM t CROSS JOIN LATERAL (SELECT * FROM t t2 ORDER BY val <=> t.val LIMIT 1) t2 WHERE t.val != '[0,0,0]' ORDER BY t.val;
val | val
---------+---------
[0,0,0] | [1,2,3]
[1,1,1] | [1,1,1]
[1,2,3] | [1,2,3]
[1,2,4] | [1,2,4]
(4 rows)
(3 rows)
DROP TABLE t;
-- iterative
+1 -1
View File
@@ -41,7 +41,7 @@ INSERT INTO t (val) VALUES ('[1,2,4]');
SELECT * FROM t ORDER BY val <=> '[3,3,3]';
SELECT COUNT(*) FROM (SELECT * FROM t ORDER BY val <=> '[0,0,0]') t2;
SELECT COUNT(*) FROM (SELECT * FROM t ORDER BY val <=> (SELECT NULL::vector)) t2;
SELECT * FROM t CROSS JOIN LATERAL (SELECT * FROM t t2 ORDER BY val <=> t.val LIMIT 1) t2 WHERE t.val IS NOT NULL ORDER BY t.val;
SELECT * FROM t CROSS JOIN LATERAL (SELECT * FROM t t2 ORDER BY val <=> t.val LIMIT 1) t2 WHERE t.val != '[0,0,0]' ORDER BY t.val;
DROP TABLE t;
+1 -1
View File
@@ -41,7 +41,7 @@ INSERT INTO t (val) VALUES ('[1,2,4]');
SELECT * FROM t ORDER BY val <=> '[3,3,3]';
SELECT COUNT(*) FROM (SELECT * FROM t ORDER BY val <=> '[0,0,0]') t2;
SELECT COUNT(*) FROM (SELECT * FROM t ORDER BY val <=> (SELECT NULL::vector)) t2;
SELECT * FROM t CROSS JOIN LATERAL (SELECT * FROM t t2 ORDER BY val <=> t.val LIMIT 1) t2 WHERE t.val IS NOT NULL ORDER BY t.val;
SELECT * FROM t CROSS JOIN LATERAL (SELECT * FROM t t2 ORDER BY val <=> t.val LIMIT 1) t2 WHERE t.val != '[0,0,0]' ORDER BY t.val;
DROP TABLE t;