diff --git a/values.go b/values.go index 0dc5b641..1f0647b5 100644 --- a/values.go +++ b/values.go @@ -1102,16 +1102,17 @@ func encodeTimestamp(w *WriteBuf, value interface{}) error { func decode1dArrayHeader(vr *ValueReader) (length int32, err error) { numDims := vr.ReadInt32() - if numDims == 0 { - return 0, nil - } - if numDims != 1 { + if numDims > 1 { return 0, ProtocolError(fmt.Sprintf("Expected array to have 0 or 1 dimension, but it had %v", numDims)) } vr.ReadInt32() // 0 if no nulls / 1 if there is one or more nulls -- but we don't care vr.ReadInt32() // element oid + if numDims == 0 { + return 0, nil + } + length = vr.ReadInt32() idxFirstElem := vr.ReadInt32()