Anton Vinogradov created IGNITE-28922:
-----------------------------------------

             Summary: Revise the wire-companion field pairs of 
CacheContinuousQueryEntry
                 Key: IGNITE-28922
                 URL: https://issues.apache.org/jira/browse/IGNITE-28922
             Project: Ignite
          Issue Type: Task
            Reporter: Anton Vinogradov


CacheContinuousQueryEntry keeps its payload in pairs of fields: the local 
key/newVal/oldVal that consumers read, and the @Order companions written to the 
wire. The marshal hook copies local -> companion only for a non-filtered entry 
(a filtered one must not carry the payload), and the unmarshal hook moves the 
companions back and nulls them.

The shape predates this PR: master has the same pairs with byte[] companions 
filled in prepareMarshal under the same !isFiltered() guard; this PR only 
changes the companion type from a marshaller blob to the typed 
KeyCacheObject/CacheObject written by the generated serializer.

The pairs exist because the generated serializer writes @Order fields 
unconditionally — there is no per-field conditional/converter facility in the 
codegen. Proposal: either add such a facility (a way to declare "write this 
field only when a condition holds"), or split the entry into two message shapes 
(filtered / full) so that no field pairs are needed.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to