@Override
    public ClickHouseByteArrayValue update(Object[] value) {
        int len = value == null ? 0 : value.length;
        if (len == 0) {
            return resetToNullOrEmpty();
        } else if (value instanceof Boolean[]) {
            byte[] values = new byte[len];
            for (int i = 0; i < len; i++) {
                values[i] = Boolean.TRUE.equals(value[i]) ? (byte) 1 : (byte) 0;
            }
            set(values);
        } else {
            byte[] values = new byte[len];
            for (int i = 0; i < len; i++) {
                Object o = value[i];
                values[i] = o == null ? 0 : ((Number) o).byteValue();
            }
            set(values);
        }

        return this;
    }
Update value of the given object or create a new instance if {@code ref} is
null.

@param ref      object to update, could be null
@param value    value
@param unsigned true if {@code value} is unsigned; false otherwise
@return same object as {@code ref} or a new instance if it's null
clickhouse-data/src/main/java/com/clickhouse/data/value/array/ClickHouseByteArrayValue.java