| Bug #108753 | Except subquery assertion error | ||
|---|---|---|---|
| Submitted: | 12 Oct 2022 11:58 | Modified: | 24 Oct 2022 15:27 |
| Reporter: | Pedro Ferreira | Email Updates: | |
| Status: | Verified | Impact on me: | |
| Category: | MySQL Server: Optimizer | Severity: | S6 (Debug Builds) |
| Version: | 8.0.31 | OS: | Ubuntu (22.04) |
| Assigned to: | CPU Architecture: | x86 (x86_64) | |
| Tags: | except, optimization | ||
[12 Oct 2022 12:49]
MySQL Verification Team
Hello Pedro Ferreira, Thank you for the report and feedback. Observed that 8.0.31 debug build is affected. regards, Umesh
[12 Oct 2022 12:53]
MySQL Verification Team
-- 8.0.31 debug build ./mtr bug108753 --debug-server --nocheck-testcases Logging: ./mtr bug108753 --debug-server --nocheck-testcases MySQL Version 8.0.31 Checking supported features - Binaries are debug compiled Using 'all' suites Collecting tests Checking leftover processes Removing old var directory Creating var directory '/export/home/tmp/ushastry/mysql-8.0.31/mysql-test/var' Installing system database Using parallel: 1 ============================================================================== TEST NAME RESULT TIME (ms) COMMENT ------------------------------------------------------------------------------ SELECT ((SELECT 2) EXCEPT ((SELECT 2) EXCEPT (SELECT 2))) IS NULL; [ 50%] main.bug108753 [ fail ] Test ended at 2022-10-12 14:49:19 CURRENT_TEST: main.bug108753 mysqltest: At line 1: Query 'SELECT ((SELECT 2) EXCEPT ((SELECT 2) EXCEPT (SELECT 2))) IS NULL' failed. ERROR 2013 (HY000): Lost connection to MySQL server during query
[24 Oct 2022 15:27]
Pedro Ferreira
Today I replaced this issue with a UNION QUERY: SELECT 1 WHERE EXISTS ((SELECT CAST(X'D297789C20446841F410515CE8413874' AS BINARY)) UNION ALL ((SELECT 2) UNION DISTINCT (SELECT 2))) IS NULL;

Description: The following query: SELECT ((SELECT 2) EXCEPT ((SELECT 2) EXCEPT (SELECT 2))) IS NULL; Triggers an assertion error at sql_optimizer.cc:289 assert(query_block->leaf_table_count == 0 || thd->lex->is_query_tables_locked() || query_block == set_operand_block); The compilation parameters are the same as issue 108148: -DWITH_DEBUG=1 -DWITH_ASAN=ON -DWITH_UBSAN=ON and boost library version 1.77 How to repeat: Run the query above.