Maximum array-axis length QuestDB can materialise, on ingress and egress
alike: ArrayView.DIM_MAX_LEN, the 28-bit bound MutableArray.setDimLen()
enforces while a QWP batch is appended to the WAL.
The wire field is a uint32, so a longer axis still encodes into a
self-consistent frame -- and a shape like [0, 2 ** 28] costs only 29 bytes,
so neither the batch byte cap nor the row cap contains it. The frame is
published, the server rejects the whole batch, and the rows are lost; the
axis is therefore bounded before it is staged.
Maximum array-axis length QuestDB can materialise, on ingress and egress alike: ArrayView.DIM_MAX_LEN, the 28-bit bound MutableArray.setDimLen() enforces while a QWP batch is appended to the WAL.
The wire field is a uint32, so a longer axis still encodes into a self-consistent frame -- and a shape like [0, 2 ** 28] costs only 29 bytes, so neither the batch byte cap nor the row cap contains it. The frame is published, the server rejects the whole batch, and the rows are lost; the axis is therefore bounded before it is staged.