BytesValue sounds right. I’m not sure why it isn’t working for you.
> On Apr 14, 2016, at 6:34 AM, F21 <[email protected]> wrote:
>
> As mentioned on the list, I am currently working on a golang client/driver
> for avatica using protobufs for serialization.
>
> I've got all datatypes working, except for BINARY and VARBINARY.
>
> For my test table looks like this:
> CREATE TABLE test (int INTEGER PRIMARY KEY, bin BINARY(20), varbin VARBINARY)
> TRANSACTIONAL=false
>
> In go, we have a datatype called a slice of bytes ([]byte) which is
> essentially an array of bytes (8-bits each).
>
> When I generated the golang protobufs using the .proto files, this is the
> definition of TypedValue:
> type TypedValue struct {
> Type Rep `protobuf:"varint,1,opt,name=type,enum=Rep"
> json:"type,omitempty"`
> BoolValue bool `protobuf:"varint,2,opt,name=bool_value,json=boolValue"
> json:"bool_value,omitempty"`
> StringValue string
> `protobuf:"bytes,3,opt,name=string_value,json=stringValue"
> json:"string_value,omitempty"`
> NumberValue int64
> `protobuf:"zigzag64,4,opt,name=number_value,json=numberValue"
> json:"number_value,omitempty"`
> BytesValues []byte
> `protobuf:"bytes,5,opt,name=bytes_values,json=bytesValues,proto3"
> json:"bytes_values,omitempty"`
> DoubleValue float64
> `protobuf:"fixed64,6,opt,name=double_value,json=doubleValue"
> json:"double_value,omitempty"`
> Null bool `protobuf:"varint,7,opt,name=null"
> json:"null,omitempty"`
> }
>
> I am currently creating a TypedValue that looks like this when sending binary
> data:
> {BYTE_STRING false 0 [116 101 115 116] 0 false}
>
> So, the Rep is set to BYTE_STRING and ByteValues is populated with the string
> "test" in bytes (it's shown here as decimal because I printed it).
>
> The problem is that even though the insert executes properly, if I look at
> the row using SquirrelSQL, both the BINARY and VARBINARY columns are <null>.
>
> Is BYTE_STRING the correct rep type for sending binary data? Do I also have
> to encode my bytes in a special format?
>
> Thanks!