1
0
mirror of https://github.com/MariaDB/server.git synced 2026-10-23 18:49:29 +03:00
Files
DerZc f49e838d36 MDEV-40689 Wrong result: BIT_AND/BIT_OR/BIT_XOR in WINDOW functions over a frame containing NULL
BIT_AND, BIT_OR, and BIT_XOR window functions can return incorrect
values as a sliding frame moves past NULL input rows.

Adding a NULL argument leaves the bit-aggregate state unchanged, but
removing that row unconditionally calls remove_as_window() with
val_int()'s value. The removal path therefore changes state for a row
that never contributed to the aggregate.

Evaluate the departing window argument once and retain its unsigned
value. Call remove_as_window() only when the evaluated argument is
non-NULL. Leave the existing incremental window algorithm and non-window
aggregation path in place.

The regression checks all three bit aggregates over ROWS BETWEEN 1
PRECEDING AND CURRENT ROW with interleaved NULL and non-NULL values,
including removal of a real zero and restoration of the neutral values
after the frame becomes all-NULL.

Bug report: https://jira.mariadb.org/browse/MDEV-40689
2026-09-28 14:44:23 +03:00
..
2026-05-08 08:00:01 +02:00
2025-10-25 00:19:11 +07:00
…
2026-07-23 11:12:27 +02:00
2026-07-28 13:14:38 +02:00
…
2025-09-04 18:08:39 +03:00
2024-01-19 09:07:48 +02:00
…
2023-12-21 02:14:59 +01:00
…
…
2024-12-02 11:35:34 +02:00
2024-11-29 12:37:46 +02:00
2024-10-30 15:11:17 +01:00
…
2026-01-28 21:52:18 +01:00
2026-07-28 13:14:38 +02:00
2026-08-19 08:40:05 +02:00
2024-12-02 11:35:34 +02:00
2023-12-21 02:14:59 +01:00
…
…
…
2024-01-27 12:09:54 +01:00
2024-01-27 12:09:54 +01:00
2026-06-15 12:50:45 +02:00
2025-09-04 18:08:39 +03:00
2026-08-30 17:39:50 +02:00
2024-11-29 13:43:17 +02:00
…
…
2026-08-19 08:40:05 +02:00
2026-08-19 08:40:05 +02:00
2024-12-02 11:35:34 +02:00
2024-12-05 10:11:58 +01:00
2026-08-19 08:40:05 +02:00
2026-07-28 13:14:38 +02:00
2026-08-19 08:13:54 +02:00
2026-01-28 14:22:20 +01:00
2026-06-26 13:45:38 +03:00
2026-01-28 21:52:18 +01:00
2026-01-28 14:22:20 +01:00
2026-01-28 14:22:20 +01:00
2026-08-30 17:39:50 +02:00
2024-12-02 11:35:34 +02:00
2026-07-14 12:49:36 +10:00
2024-11-29 13:43:17 +02:00
2024-07-08 22:40:16 +02:00
2024-06-17 12:02:03 +03:00
2025-04-26 10:53:02 +02:00
2024-05-21 19:38:51 +02:00
2023-11-14 18:33:03 +01:00
…
2025-04-26 10:53:02 +02:00
2026-08-19 08:40:05 +02:00
2026-08-19 08:40:05 +02:00
2026-08-19 08:40:05 +02:00
2026-05-08 08:00:01 +02:00
…
…
2025-09-04 18:08:39 +03:00
2026-04-01 10:49:05 +03:00
…
2024-09-18 07:38:49 +03:00
2024-12-02 11:35:34 +02:00
2023-11-08 16:23:30 +01:00
2026-08-19 08:40:05 +02:00
2026-08-19 08:40:05 +02:00
2026-07-28 13:14:38 +02:00
2024-05-21 19:38:51 +02:00
2026-08-19 08:40:05 +02:00
2026-01-28 21:52:18 +01:00
2026-08-19 08:40:05 +02:00
2026-07-28 13:14:38 +02:00
2024-12-02 11:35:34 +02:00
2026-07-28 13:14:38 +02:00
2026-05-08 08:00:01 +02:00
2026-08-19 08:40:05 +02:00
2026-05-08 08:00:01 +02:00
2024-12-02 11:35:34 +02:00
…
2025-09-04 18:08:39 +03:00
2024-07-22 15:14:50 +02:00
2026-05-08 08:00:01 +02:00
2026-05-08 08:00:01 +02:00
2026-05-08 08:00:01 +02:00
2026-06-15 12:50:45 +02:00
2026-07-28 13:14:38 +02:00
2026-06-15 12:50:45 +02:00
2026-08-19 08:40:05 +02:00
2026-08-19 08:40:05 +02:00
2026-06-15 12:50:45 +02:00
2026-06-15 10:43:23 +02:00
2024-12-02 11:35:34 +02:00
2026-08-19 08:40:05 +02:00
2026-08-19 08:40:05 +02:00
2026-08-19 08:40:05 +02:00
2025-10-28 17:49:51 +01:00
2025-10-28 17:49:51 +01:00
2026-07-28 13:14:38 +02:00
2024-12-02 11:35:34 +02:00
2026-08-19 08:13:54 +02:00
2025-09-04 18:08:39 +03:00
2026-08-19 08:40:05 +02:00
2025-01-14 23:45:41 +01:00
2024-06-24 13:09:47 +03:00
2025-01-30 12:01:11 +01:00
2024-11-29 13:43:17 +02:00
2026-08-19 08:40:05 +02:00
2026-05-08 08:00:01 +02:00
2025-09-04 18:08:39 +03:00
2024-01-18 19:22:23 +02:00
2026-04-01 10:49:05 +03:00
2024-12-02 11:35:34 +02:00
2026-08-19 08:40:05 +02:00
2026-08-19 08:40:05 +02:00
2026-01-28 21:52:18 +01:00
2026-01-02 11:06:05 +02:00
2024-10-03 13:24:43 +03:00
2026-03-23 08:44:54 +02:00
2026-07-23 11:12:27 +02:00
2026-07-23 11:12:27 +02:00
2026-07-28 13:14:38 +02:00
2025-03-03 11:07:56 +02:00
2026-03-17 18:57:42 +01:00
2026-01-28 21:52:18 +01:00
2026-08-19 08:40:05 +02:00
…
2024-08-21 09:30:54 +02:00
2026-04-01 10:49:05 +03:00
2025-09-24 13:40:09 +03:00
2025-09-04 18:08:39 +03:00
2024-06-27 10:26:09 +03:00
2025-01-09 07:58:08 +02:00
2024-10-30 15:11:17 +01:00
2024-11-29 12:37:46 +02:00
…
2026-07-28 13:14:38 +02:00
2025-09-19 12:31:14 +03:00
2025-09-04 18:08:39 +03:00
2026-07-28 13:14:38 +02:00
2026-07-28 13:14:38 +02:00
2026-05-08 08:00:01 +02:00
2024-04-15 18:54:30 +02:00
2026-08-19 08:40:05 +02:00
2026-01-28 21:52:18 +01:00
2024-07-03 12:45:30 +02:00
2026-08-19 08:40:05 +02:00
2023-12-17 11:20:43 +01:00
2026-08-19 08:40:05 +02:00
2026-07-23 11:12:27 +02:00
2026-08-19 08:40:05 +02:00
2023-12-02 01:02:50 +01:00
2025-09-04 18:08:39 +03:00
2026-05-08 08:00:01 +02:00
2026-08-19 08:40:05 +02:00
2026-03-17 11:30:41 +02:00
2024-03-28 10:51:36 +02:00
2025-09-16 17:01:39 +03:00
2026-07-23 11:12:27 +02:00
2026-08-19 08:40:05 +02:00
2026-07-28 13:14:38 +02:00
2025-01-30 12:01:11 +01:00
2025-03-27 08:01:47 +02:00
2026-05-08 08:00:01 +02:00
…
2024-01-18 19:22:23 +02:00
2026-08-19 08:40:05 +02:00
2026-07-28 13:14:38 +02:00
2024-12-02 11:35:34 +02:00
2024-11-23 08:14:23 -07:00
2026-08-19 08:40:05 +02:00
2026-07-28 13:14:38 +02:00
2026-07-28 13:14:38 +02:00
2026-06-15 12:50:45 +02:00
2026-08-19 08:40:05 +02:00
2026-08-19 08:40:05 +02:00
2026-08-19 08:40:05 +02:00
2026-08-19 08:40:05 +02:00
2026-07-28 13:14:38 +02:00
2025-09-04 18:08:39 +03:00
2024-06-24 13:09:47 +03:00
2025-07-28 19:40:10 +02:00
…
2024-02-15 13:53:21 +01:00
2024-12-02 11:35:34 +02:00
2024-12-02 11:35:34 +02:00
2026-08-19 08:40:05 +02:00
2025-04-26 10:53:02 +02:00
2024-02-21 13:08:23 +02:00
2025-11-28 12:56:27 +02:00
2025-11-28 12:56:27 +02:00
2024-01-02 17:37:58 +02:00
2024-06-27 10:26:09 +03:00
2026-08-19 08:40:05 +02:00
2026-06-21 15:32:20 +02:00
2026-08-19 08:40:05 +02:00
2024-10-03 13:24:43 +03:00
2024-09-09 13:50:38 +03:00
2026-08-19 08:40:05 +02:00
2026-07-23 11:12:27 +02:00
2026-07-23 11:12:27 +02:00
2026-08-19 08:40:05 +02:00
2026-04-01 10:49:05 +03:00
2025-07-28 19:40:10 +02:00