The vectorizedInboundStreamHandler ignores the first message from the stream, with no explanation.
|
_ execinfrapb.ProducerMessage, |
I think that's OK because the vectorized outboxes don't put any info in that first message besides the stream id, which is used above this level. And I think we don't intermix vectorized and non-vectorized flows on different nodes.
However, this is against the DistSQL protocol; there's nothing mandating that there's no data in that message (in fact, in the row-based outbox case, there is). It's also not clear to me why we can't mix row-based and vectorized flows.
I think we should handle that first message in the vectorized case, or at the very least document and assert that there's no data in that first message.
Jira issue: CRDB-5447
The
vectorizedInboundStreamHandlerignores the first message from the stream, with no explanation.cockroach/pkg/sql/colflow/vectorized_flow.go
Line 678 in d3893a1
I think that's OK because the vectorized outboxes don't put any info in that first message besides the stream id, which is used above this level. And I think we don't intermix vectorized and non-vectorized flows on different nodes.
However, this is against the DistSQL protocol; there's nothing mandating that there's no data in that message (in fact, in the row-based outbox case, there is). It's also not clear to me why we can't mix row-based and vectorized flows.
I think we should handle that first message in the vectorized case, or at the very least document and assert that there's no data in that first message.
Jira issue: CRDB-5447