Files
openobserve/tests/test-data/joinqueries.json
T
Neha PandClaude 52b2759bfa test: add INTERSECT and EXCEPT query tests for PR #9544 (#9601)
Added 4 new test cases to verify the join optimization fix:
- INTERSECT query: Common user_ids in both streams
- EXCEPT query: Users without orders
- INTERSECT with WHERE clause: Active users with orders
- EXCEPT with multiple columns: Users details without orders

Also improved test_joinqueries.py by adding a 3-second sleep after data
ingestion to allow proper indexing before querying.

Co-authored-by: Claude <noreply@anthropic.com>
2025-12-11 14:06:13 +05:30

60 lines
3.0 KiB
JSON

[
{
"test_name": "Basic join query",
"sql_query": "SELECT o.order_id, o.product, o.amount, u.name, u.age FROM \"orders\" o JOIN \"u1\" u ON o.user_id = u.user_id"
},
{
"test_name": "Left join query",
"sql_query": "SELECT o.order_id, o.product, o.amount, u.name, u.age FROM \"orders\" AS o LEFT JOIN \"u1\" AS u ON o.user_id = u.user_id"
},
{
"test_name": "Grouped left join query",
"sql_query": "SELECT u.name AS user_name, u.status AS user_status, COUNT(o.order_id) AS order_count FROM u1 u LEFT JOIN orders o ON u.user_id = o.user_id GROUP BY u.name, u.status"
},
{
"test_name": "Filtered grouped left join query",
"sql_query": "SELECT usr.name AS user_name, usr.status AS user_status, COUNT(o.order_id) AS order_count FROM u1 usr LEFT JOIN orders o ON usr.user_id = o.user_id WHERE usr.status IN ('active','pending') GROUP BY usr.name, usr.status"
},
{
"test_name": "Grouped left join with alias",
"sql_query": "SELECT usr.name AS user_name, usr.status AS user_status, COUNT(o.order_id) AS order_count FROM u1 usr LEFT JOIN orders o ON usr.user_id = o.user_id GROUP BY user_name, user_status"
},
{
"test_name": "Inner join with subquery for total orders",
"sql_query": "SELECT u1.name, u1.status, o.amount, (SELECT COUNT(*) FROM orders ) AS total_orders FROM u1 JOIN orders o ON u1.user_id = o.user_id"
},
{
"test_name": "Right join with subquery for total orders",
"sql_query": "SELECT u1.name, u1.status, o.amount, (SELECT COUNT(*) FROM orders ) AS total_orders FROM u1 RIGHT JOIN orders o ON u1.user_id = o.user_id"
},
{
"test_name": "Union query: Select amount from orders and age from u1",
"sql_query": "SELECT amount FROM \"orders\" UNION SELECT age FROM \"u1\""
},
{
"test_name": "Error count query: Users without orders",
"sql_query": "SELECT COUNT(*) AS error_count FROM u1 usr LEFT JOIN orders o ON usr.user_id = o.user_id WHERE o.order_id IS NULL"
},
{
"test_name": "Total Orders Query",
"sql_query": "WITH total AS (SELECT COUNT(*) AS total_count FROM orders) SELECT u1.name, u1.status, o.amount, total.total_count AS total_orders FROM u1 JOIN orders o ON u1.user_id = o.user_id CROSS JOIN total"
},
{
"test_name": "INTERSECT query: Common user_ids in both streams",
"sql_query": "SELECT user_id FROM \"u1\" INTERSECT SELECT user_id FROM \"orders\""
},
{
"test_name": "EXCEPT query: Users without orders",
"sql_query": "SELECT user_id FROM \"u1\" EXCEPT SELECT user_id FROM \"orders\""
},
{
"test_name": "INTERSECT with WHERE clause: Active users with orders",
"sql_query": "SELECT user_id FROM \"u1\" WHERE status = 'active' INTERSECT SELECT user_id FROM \"orders\""
},
{
"test_name": "EXCEPT with multiple columns: Users details without orders",
"sql_query": "SELECT user_id, name FROM \"u1\" EXCEPT SELECT user_id, 'placeholder' FROM \"orders\""
}
]