citus/test_debug_pg18.sql

116 lines
3.2 KiB
SQL

-- Test to debug PostgreSQL 1-- Test the actual failing pattern before
SELECT users_table.value_1 as value1
FROM (
SELECT event_type, users_table.user_id
FROM users_table,
(
SELECT user_id, event_type
FROM events_table
WHERE value_2 < 3
ORDER BY 1, 2
LIMIT 1
) as foo
WHERE foo.user_id = users_table.user_id
) bar, users_table
WHERE bar.user_id = users_table.user_id
GROUP BY value1;
-- First let's test with our existing setup
\c citus
-- Simple subquery that should work
SELECT user_id FROM (SELECT user_id FROM users_table WHERE user_id = 1) sub;
-- Test aggregate subquery (this might have ?column? issue)
SELECT * FROM (SELECT avg(user_id) FROM users_table) sub;
-- Test complex subquery similar to the failing one
SELECT * FROM (
SELECT avg(event_type) as avg_val
FROM (
SELECT event_type
FROM events_table
WHERE value_2 < 3
LIMIT 1
) foo
) bar;
--Test simple alias
SELECT value_1 as value1
from (
select * from (
select * from users_table
) as tab2
) as tab;
-- Test the actual failing pattern before
SELECT users_table.value_1 as value1
FROM (
SELECT event_type, users_table.user_id
FROM users_table,
(
SELECT user_id, event_type
FROM events_table
WHERE value_2 < 3
ORDER BY 1, 2
LIMIT 1
) as foo
WHERE foo.user_id = users_table.user_id
) bar, users_table
WHERE bar.user_id = users_table.user_id
;
-- Test the actual failing pattern
-- Test the simplified ?column? issue
SELECT DISTINCT user_id
FROM (
SELECT users_table.user_id
FROM users_table,
(
SELECT event_type as avg_val
FROM (
SELECT event_type, a_users.user_id
FROM users_table as a_users,
(
SELECT user_id, event_type
FROM events_table
WHERE value_2 < 3
ORDER BY 1, 2
LIMIT 1
) as foo
WHERE foo.user_id = a_users.user_id
) bar, users_table as b_users
WHERE bar.user_id = b_users.user_id
) as baz
WHERE baz.avg_val < users_table.user_id
ORDER BY 1
LIMIT 1
) as sub1;
-- Test the actual failing pattern
-- Test the simplified ?column? issue
SELECT DISTINCT user_id
FROM (
SELECT users_table.user_id
FROM users_table,
(
SELECT avg(event_type) as avg_val
FROM (
SELECT event_type, a_users.user_id
FROM users_table as a_users,
(
SELECT user_id, event_type
FROM events_table
WHERE value_2 < 3
ORDER BY 1, 2
LIMIT 1
) as foo
WHERE foo.user_id = a_users.user_id
) bar, users_table as b_users
WHERE bar.user_id = b_users.user_id
GROUP BY b_users.value_1
) as baz
WHERE baz.avg_val < users_table.user_id
ORDER BY 1
LIMIT 1
) as sub1;