1
0
mirror of https://github.com/MariaDB/server.git synced 2025-12-16 22:03:23 +03:00
Files
mariadb/mysql-test/t
Igor Babaev c7a153453e Fixed the bug mdev-12556.
When the rows produced on the current iteration are sent to the
temporary table T of the UNION type created for CTE the rows
that were not there simultaneously are sent to the temporary
table D that contains rows for the next iteration. The test
whether a row was in T checks the return code of writing into T.
If just a HEAP table is used for T then the return code is
HA_ERR_FOUND_DUPP_KEY, but if an ARIA table is used for T then
the return code is HA_ERR_FOUND_DUPP_UNIQUE.
The implementation of select_union_recursive::send_data()
erroneously checked only for the first return code. So if an Aria
table was used for T then all rows produced by the current iteration
went to D and and in most cases D grew with each iteration.
Whether T has reached stabilization is detected by
checking whether D is empty. So as a result, the iterations were
never stopped unless a limit for them was set.

Fixed by checking for both HA_ERR_FOUND_DUPP_KEY and
HA_ERR_FOUND_DUPP_UNIQUE as return codes returned by
the function writing a row into the temporary table T.
2017-04-26 10:16:03 -07:00
..
2017-03-30 12:48:42 +02:00
2017-02-10 06:30:42 -05:00
2016-05-04 15:23:26 +02:00
2017-04-26 10:16:03 -07:00
2016-09-06 12:50:02 +04:00
2016-09-06 12:50:02 +04:00
2016-09-06 12:50:02 +04:00
2016-06-30 16:38:05 +02:00
2017-02-10 17:01:45 +01:00
2017-02-10 17:01:45 +01:00
2017-02-10 17:01:45 +01:00
2017-02-21 20:31:06 +01:00
2017-02-10 06:30:42 -05:00
2017-03-30 12:48:42 +02:00
2016-06-28 22:01:55 +02:00
2016-05-04 15:23:26 +02:00
2017-02-10 06:30:42 -05:00
2016-12-29 13:23:18 +01:00
2016-12-29 13:23:18 +01:00
2016-09-09 08:33:08 +02:00
2017-03-30 12:48:42 +02:00
2017-03-30 12:48:42 +02:00
2017-02-10 06:30:42 -05:00
2016-09-15 15:31:28 +02:00
2017-02-24 09:40:53 -08:00
2016-06-21 14:11:02 +02:00
2017-02-10 06:30:42 -05:00
2016-09-10 16:04:44 +02:00
2016-12-29 13:23:18 +01:00
2017-02-10 06:30:42 -05:00
2017-02-10 06:30:42 -05:00
2017-02-10 06:30:42 -05:00
2016-08-10 19:19:05 +02:00
2017-03-30 12:48:42 +02:00
2016-12-29 13:23:18 +01:00
2017-02-10 06:30:42 -05:00
2017-03-30 12:48:42 +02:00
2016-07-13 12:09:59 +02:00
2017-03-30 12:48:42 +02:00
2017-04-03 15:59:38 -07:00
2017-02-10 06:30:42 -05:00
2016-12-11 09:53:42 +01:00
2017-02-10 06:30:42 -05:00
2017-03-30 12:48:42 +02:00
2017-03-21 19:20:44 +01:00
2017-03-08 14:40:02 +02:00
2017-04-24 14:57:26 -07:00
2017-03-09 08:53:08 +02:00
2016-06-30 11:43:02 +02:00
2017-02-10 17:01:45 +01:00
2016-09-24 15:12:34 +02:00
2017-03-29 08:46:00 -07:00
2017-02-10 06:30:42 -05:00