@ -645,7 +645,7 @@ SELECT query, calls FROM pg_stat_statements ORDER BY query COLLATE "C";
SELECT pg_stat_statements_reset() IS NOT NULL AS t | 1
SELECT pg_stat_statements_reset() IS NOT NULL AS t | 1
(2 rows)
(2 rows)
-- Multiple CoerceViaIO wrapping a constant. Will not squash
-- Multiple CoerceViaIO are squashed
SELECT pg_stat_statements_reset() IS NOT NULL AS t;
SELECT pg_stat_statements_reset() IS NOT NULL AS t;
t
t
---
---
@ -661,10 +661,10 @@ SELECT WHERE 1 = ANY(ARRAY[1::text::int::text::int, 1::text::int::text::int]);
(1 row)
(1 row)
SELECT query, calls FROM pg_stat_statements ORDER BY query COLLATE "C";
SELECT query, calls FROM pg_stat_statements ORDER BY query COLLATE "C";
query | calls
query | calls
------------------------------------------------------------------------- +-------
----------------------------------------------------+-------
SELECT WHERE $1 IN ($2::text::int::text::int, $3::text::int::text::int) | 2
SELECT WHERE $1 IN ($2 /*, ... */) | 2
SELECT pg_stat_statements_reset() IS NOT NULL AS t | 1
SELECT pg_stat_statements_reset() IS NOT NULL AS t | 1
(2 rows)
(2 rows)
--
--
@ -676,7 +676,7 @@ SELECT pg_stat_statements_reset() IS NOT NULL AS t;
t
t
(1 row)
(1 row)
-- if there is only one level of RelabelType, the list will be squashable
-- However many layers of RelabelType there are, the list will be squashable.
SELECT * FROM test_squash WHERE id IN
SELECT * FROM test_squash WHERE id IN
(1::oid, 2::oid, 3::oid, 4::oid, 5::oid, 6::oid, 7::oid, 8::oid, 9::oid);
(1::oid, 2::oid, 3::oid, 4::oid, 5::oid, 6::oid, 7::oid, 8::oid, 9::oid);
id | data
id | data
@ -689,8 +689,6 @@ SELECT ARRAY[1::oid, 2::oid, 3::oid, 4::oid, 5::oid, 6::oid, 7::oid, 8::oid, 9::
{1,2,3,4,5,6,7,8,9}
{1,2,3,4,5,6,7,8,9}
(1 row)
(1 row)
-- if there is at least one element with multiple levels of RelabelType,
-- the list will not be squashable
SELECT * FROM test_squash WHERE id IN (1::oid, 2::oid::int::oid);
SELECT * FROM test_squash WHERE id IN (1::oid, 2::oid::int::oid);
id | data
id | data
----+------
----+------
@ -701,15 +699,25 @@ SELECT * FROM test_squash WHERE id = ANY(ARRAY[1::oid, 2::oid::int::oid]);
----+------
----+------
(0 rows)
(0 rows)
-- RelabelType together with CoerceViaIO is also squashable
SELECT * FROM test_squash WHERE id = ANY(ARRAY[1::oid::text::int::oid, 2::oid::int::oid]);
id | data
----+------
(0 rows)
SELECT * FROM test_squash WHERE id = ANY(ARRAY[1::text::int::oid, 2::oid::int::oid]);
id | data
----+------
(0 rows)
SELECT query, calls FROM pg_stat_statements ORDER BY query COLLATE "C";
SELECT query, calls FROM pg_stat_statements ORDER BY query COLLATE "C";
query | calls
query | calls
--------------------------------------------------------------------+-------
----------------------------------------------------+-------
SELECT * FROM test_squash WHERE id IN +| 1
SELECT * FROM test_squash WHERE id IN +| 5
($1 /*, ... */) |
($1 /*, ... */) |
SELECT * FROM test_squash WHERE id IN ($1::oid, $2::oid::int::oid) | 2
SELECT ARRAY[$1 /*, ... */] | 1
SELECT ARRAY[$1 /*, ... */] | 1
SELECT pg_stat_statements_reset() IS NOT NULL AS t | 1
SELECT pg_stat_statements_reset() IS NOT NULL AS t | 1
(3 rows)
(4 rows)
--
--
-- edge cases
-- edge cases