Joseph Doherty
ca0e73fbca
fix(opcua): #855 perf review 1 — groups evaluate their own filter clone; lazy fields; tighter equivalence tests
...
- A filter group owns a deep clone of its first filter, validated once and
evaluated under the group's lock: no item-owned filter is mutated or raced
(Validate mutates a select clause).
- The projection is computed in the SDK's order: where clause first, fields
only for an item that will queue.
- Unambiguous locale key; counter for filters given a private group past the
registry cap; DeliveryCache getter returns its own allocation.
- UseProjectedEventDelivery=false also asks the role and grant checks per
item, so the equivalence test compares against the pre-optimisation path.
- Equivalence test: same select list under three where clauses, a filter
modified mid-run, a session with other locales, an ungranted anonymous
Server-object item, per-rig counter; plus a small overflowing queue with
DiscardOldest true and false.
Claude-Session: https://claude.ai/code/session_01GT67AD99zQQqpLCVm3p7xk
2026-11-11 13:59:22 -05:00
..
2026-10-09 06:16:16 -04:00
2026-11-10 20:28:11 -05:00
2026-08-07 02:02:54 -04:00
2026-08-10 04:29:49 -04:00
2026-11-11 01:33:00 -05:00
2026-08-07 06:28:22 -04:00
2026-11-09 17:44:35 -05:00
2026-07-27 19:54:41 -04:00
2026-08-07 06:28:22 -04:00
2026-07-27 19:54:41 -04:00
2026-07-27 19:54:41 -04:00
2026-10-13 09:07:13 -04:00
2026-07-27 19:54:41 -04:00
2026-07-27 19:54:41 -04:00
2026-07-27 19:54:41 -04:00
2026-07-27 19:54:41 -04:00
2026-08-10 05:48:09 -04:00
2026-08-10 05:48:09 -04:00
2026-08-10 04:29:49 -04:00
2026-07-27 19:54:41 -04:00
2026-08-05 03:14:31 -04:00
2026-11-09 13:58:38 -05:00
2026-08-05 06:55:14 -04:00
2026-11-09 22:59:09 -05:00
2026-08-05 04:32:38 -04:00
2026-07-31 12:00:17 -04:00
2026-08-07 02:02:54 -04:00
2026-08-07 02:02:54 -04:00
2026-08-07 02:02:54 -04:00
2026-08-07 02:02:54 -04:00
2026-08-07 02:02:54 -04:00
2026-07-27 19:54:41 -04:00
2026-08-01 11:09:57 -04:00
2026-07-27 19:54:41 -04:00
2026-08-05 07:28:29 -04:00
2026-07-27 19:54:41 -04:00
2026-07-27 19:54:41 -04:00
2026-07-27 13:59:26 -04:00
2026-07-27 19:54:41 -04:00
2026-07-27 19:54:41 -04:00
2026-08-07 02:02:54 -04:00
2026-08-07 02:02:54 -04:00
2026-08-05 07:14:55 -04:00
2026-08-05 06:08:44 -04:00
2026-08-05 07:14:55 -04:00
2026-08-09 21:07:07 -04:00
2026-08-05 03:19:04 -04:00
2026-08-05 04:32:53 -04:00
2026-08-06 02:12:44 -04:00
2026-08-05 07:55:12 -04:00
2026-08-07 02:02:54 -04:00
2026-08-05 07:28:52 -04:00
2026-08-06 02:44:11 -04:00
2026-08-06 20:29:05 -04:00
2026-08-07 02:02:54 -04:00
2026-08-06 09:24:16 -04:00
2026-08-07 02:02:54 -04:00
2026-08-08 05:45:08 -04:00
2026-08-07 06:08:50 -04:00
2026-08-10 17:56:27 -04:00
2026-08-10 16:26:56 -04:00
2026-08-17 04:42:51 -04:00
2026-10-08 08:16:43 -04:00
2026-08-15 20:01:37 -04:00
2026-08-15 18:02:21 -04:00
2026-08-15 13:10:55 -04:00
2026-08-15 13:10:55 -04:00
2026-08-18 08:48:40 -04:00
2026-08-17 06:11:36 -04:00
2026-08-18 10:01:48 -04:00
2026-10-08 08:16:43 -04:00
2026-08-17 06:11:20 -04:00
2026-08-17 04:43:09 -04:00
2026-10-07 14:35:14 -04:00
2026-10-09 06:41:14 -04:00
2026-10-07 15:24:25 -04:00
2026-10-07 21:14:44 -04:00
2026-10-08 06:52:41 -04:00
2026-10-09 14:33:45 -04:00
2026-10-09 15:14:46 -04:00
2026-10-09 12:40:35 -04:00
2026-10-11 03:09:11 -04:00
2026-11-06 15:31:43 -05:00
2026-10-10 09:09:42 -04:00
2026-10-10 09:09:42 -04:00
2026-10-11 01:10:31 -04:00
2026-10-11 08:14:38 -04:00
2026-10-11 10:39:01 -04:00
2026-10-13 07:10:58 -04:00
2026-10-13 05:21:46 -04:00
2026-10-13 04:31:52 -04:00
2026-10-13 03:51:04 -04:00
2026-10-13 06:30:08 -04:00
2026-11-09 20:32:50 -05:00
2026-11-11 12:34:07 -05:00
2026-11-10 20:28:11 -05:00
2026-11-10 20:28:11 -05:00
2026-11-10 09:26:19 -05:00
2026-11-11 13:59:22 -05:00
2026-08-07 02:02:54 -04:00
2026-11-09 12:30:03 -05:00
2026-08-07 02:02:54 -04:00