subselect regress test was kind of silly; it claimed to test correlation
cases but actually did no such thing. Make it test some more cases than before (including things that didn't work in 6.5).
This commit is contained in:
parent
5c63975504
commit
3097788f66
@ -78,40 +78,60 @@ SELECT '' AS six, f1 AS "Uncorrelated Field" FROM SUBSELECT_TBL
|
||||
| 3
|
||||
(6 rows)
|
||||
|
||||
SELECT '' AS three, f1, f2
|
||||
FROM SUBSELECT_TBL
|
||||
WHERE (f1, f2) NOT IN (SELECT f2, CAST(f3 AS int4) FROM SUBSELECT_TBL
|
||||
WHERE f3 IS NOT NULL);
|
||||
three | f1 | f2
|
||||
-------+----+----
|
||||
| 1 | 2
|
||||
| 6 | 7
|
||||
| 8 | 9
|
||||
(3 rows)
|
||||
|
||||
-- Correlated subselects
|
||||
SELECT '' AS six, f1 AS "Correlated Field", f3 AS "Second Field"
|
||||
FROM SUBSELECT_TBL
|
||||
WHERE f1 IN (SELECT f2 FROM SUBSELECT_TBL WHERE f2 = f1);
|
||||
SELECT '' AS six, f1 AS "Correlated Field", f2 AS "Second Field"
|
||||
FROM SUBSELECT_TBL upper
|
||||
WHERE f1 IN (SELECT f2 FROM SUBSELECT_TBL WHERE f1 = upper.f1);
|
||||
six | Correlated Field | Second Field
|
||||
-----+------------------+--------------
|
||||
| 1 | 3
|
||||
| 2 | 4
|
||||
| 3 | 5
|
||||
| 1 | 2
|
||||
| 2 | 3
|
||||
| 3 | 4
|
||||
| 1 | 1
|
||||
| 2 | 2
|
||||
| 3 | 3
|
||||
(6 rows)
|
||||
|
||||
SELECT '' AS six, f1 AS "Correlated Field", f3 AS "Second Field"
|
||||
FROM SUBSELECT_TBL
|
||||
WHERE f1 IN (SELECT f2 FROM SUBSELECT_TBL WHERE CAST(f2 AS float) = f3);
|
||||
FROM SUBSELECT_TBL upper
|
||||
WHERE f1 IN
|
||||
(SELECT f2 FROM SUBSELECT_TBL WHERE CAST(upper.f2 AS float) = f3);
|
||||
six | Correlated Field | Second Field
|
||||
-----+------------------+--------------
|
||||
| 1 | 3
|
||||
| 2 | 4
|
||||
| 3 | 5
|
||||
| 1 | 1
|
||||
| 2 | 2
|
||||
| 3 | 3
|
||||
(6 rows)
|
||||
(5 rows)
|
||||
|
||||
SELECT '' AS six, f1 AS "Correlated Field", f3 AS "Second Field"
|
||||
FROM SUBSELECT_TBL
|
||||
WHERE f1 IN (SELECT f2 FROM SUBSELECT_TBL WHERE f2 = CAST(f3 AS integer));
|
||||
ERROR: dtoi4: unable to convert null
|
||||
FROM SUBSELECT_TBL upper
|
||||
WHERE f3 IN (SELECT upper.f1 + f2 FROM SUBSELECT_TBL
|
||||
WHERE f2 = CAST(f3 AS integer));
|
||||
six | Correlated Field | Second Field
|
||||
-----+------------------+--------------
|
||||
| 1 | 3
|
||||
| 2 | 4
|
||||
| 3 | 5
|
||||
| 6 | 8
|
||||
(4 rows)
|
||||
|
||||
SELECT '' AS five, f1 AS "Correlated Field"
|
||||
FROM SUBSELECT_TBL
|
||||
WHERE (f1, f2) IN (SELECT f2, CAST(f3 AS int4) FROM SUBSELECT_TBL WHERE f3 IS NOT NULL);
|
||||
WHERE (f1, f2) IN (SELECT f2, CAST(f3 AS int4) FROM SUBSELECT_TBL
|
||||
WHERE f3 IS NOT NULL);
|
||||
five | Correlated Field
|
||||
------+------------------
|
||||
| 2
|
||||
@ -121,31 +141,27 @@ SELECT '' AS five, f1 AS "Correlated Field"
|
||||
| 3
|
||||
(5 rows)
|
||||
|
||||
SELECT '' AS three, f1 AS "Correlated Field"
|
||||
FROM SUBSELECT_TBL
|
||||
WHERE (f1, f2) NOT IN (SELECT f2, CAST(f3 AS int4) FROM SUBSELECT_TBL WHERE f3 IS NOT NULL);
|
||||
three | Correlated Field
|
||||
-------+------------------
|
||||
| 1
|
||||
| 6
|
||||
| 8
|
||||
(3 rows)
|
||||
|
||||
--
|
||||
-- Use some existing tables in the regression test
|
||||
--
|
||||
SELECT '' AS eight, ss.f1 AS "Correlated Field", ss.f3 AS "Second Field"
|
||||
FROM SUBSELECT_TBL ss
|
||||
WHERE f1 NOT IN (SELECT f1 FROM INT4_TBL WHERE f1 != ss.f1);
|
||||
WHERE f1 NOT IN (SELECT f1+1 FROM INT4_TBL WHERE f1 != ss.f1);
|
||||
eight | Correlated Field | Second Field
|
||||
-------+------------------+--------------
|
||||
| 1 | 3
|
||||
| 2 | 4
|
||||
| 3 | 5
|
||||
| 1 | 1
|
||||
| 2 | 2
|
||||
| 3 | 3
|
||||
| 6 | 8
|
||||
| 8 |
|
||||
(8 rows)
|
||||
(6 rows)
|
||||
|
||||
select q1, float8(count(*)) / (select count(*) from int8_tbl)
|
||||
from int8_tbl group by q1;
|
||||
q1 | ?column?
|
||||
------------------+----------
|
||||
123 | 0.4
|
||||
4567890123456789 | 0.6
|
||||
(2 rows)
|
||||
|
||||
|
@ -39,27 +39,31 @@ SELECT '' AS six, f1 AS "Uncorrelated Field" FROM SUBSELECT_TBL
|
||||
WHERE f1 IN (SELECT f2 FROM SUBSELECT_TBL WHERE
|
||||
f2 IN (SELECT f1 FROM SUBSELECT_TBL));
|
||||
|
||||
SELECT '' AS three, f1, f2
|
||||
FROM SUBSELECT_TBL
|
||||
WHERE (f1, f2) NOT IN (SELECT f2, CAST(f3 AS int4) FROM SUBSELECT_TBL
|
||||
WHERE f3 IS NOT NULL);
|
||||
|
||||
-- Correlated subselects
|
||||
|
||||
SELECT '' AS six, f1 AS "Correlated Field", f3 AS "Second Field"
|
||||
FROM SUBSELECT_TBL
|
||||
WHERE f1 IN (SELECT f2 FROM SUBSELECT_TBL WHERE f2 = f1);
|
||||
SELECT '' AS six, f1 AS "Correlated Field", f2 AS "Second Field"
|
||||
FROM SUBSELECT_TBL upper
|
||||
WHERE f1 IN (SELECT f2 FROM SUBSELECT_TBL WHERE f1 = upper.f1);
|
||||
|
||||
SELECT '' AS six, f1 AS "Correlated Field", f3 AS "Second Field"
|
||||
FROM SUBSELECT_TBL
|
||||
WHERE f1 IN (SELECT f2 FROM SUBSELECT_TBL WHERE CAST(f2 AS float) = f3);
|
||||
FROM SUBSELECT_TBL upper
|
||||
WHERE f1 IN
|
||||
(SELECT f2 FROM SUBSELECT_TBL WHERE CAST(upper.f2 AS float) = f3);
|
||||
|
||||
SELECT '' AS six, f1 AS "Correlated Field", f3 AS "Second Field"
|
||||
FROM SUBSELECT_TBL
|
||||
WHERE f1 IN (SELECT f2 FROM SUBSELECT_TBL WHERE f2 = CAST(f3 AS integer));
|
||||
FROM SUBSELECT_TBL upper
|
||||
WHERE f3 IN (SELECT upper.f1 + f2 FROM SUBSELECT_TBL
|
||||
WHERE f2 = CAST(f3 AS integer));
|
||||
|
||||
SELECT '' AS five, f1 AS "Correlated Field"
|
||||
FROM SUBSELECT_TBL
|
||||
WHERE (f1, f2) IN (SELECT f2, CAST(f3 AS int4) FROM SUBSELECT_TBL WHERE f3 IS NOT NULL);
|
||||
|
||||
SELECT '' AS three, f1 AS "Correlated Field"
|
||||
FROM SUBSELECT_TBL
|
||||
WHERE (f1, f2) NOT IN (SELECT f2, CAST(f3 AS int4) FROM SUBSELECT_TBL WHERE f3 IS NOT NULL);
|
||||
WHERE (f1, f2) IN (SELECT f2, CAST(f3 AS int4) FROM SUBSELECT_TBL
|
||||
WHERE f3 IS NOT NULL);
|
||||
|
||||
--
|
||||
-- Use some existing tables in the regression test
|
||||
@ -67,5 +71,7 @@ SELECT '' AS three, f1 AS "Correlated Field"
|
||||
|
||||
SELECT '' AS eight, ss.f1 AS "Correlated Field", ss.f3 AS "Second Field"
|
||||
FROM SUBSELECT_TBL ss
|
||||
WHERE f1 NOT IN (SELECT f1 FROM INT4_TBL WHERE f1 != ss.f1);
|
||||
WHERE f1 NOT IN (SELECT f1+1 FROM INT4_TBL WHERE f1 != ss.f1);
|
||||
|
||||
select q1, float8(count(*)) / (select count(*) from int8_tbl)
|
||||
from int8_tbl group by q1;
|
||||
|
Loading…
x
Reference in New Issue
Block a user