[
https://issues.apache.org/jira/browse/CALCITE-1209?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15266921#comment-15266921
]
Josh Elser commented on CALCITE-1209:
-------------------------------------
I guess that this means that I also broke backwards compatibility with
CALCITE-1103 (because I didn't realize we were doing it wrong). I will also
need to add some special parsing to verify that if a protobuf message with the
a b64 string can still be interpreted as bytes.
> Byte strings not being correctly decoded when sent to avatica using protocol
> buffers
> ------------------------------------------------------------------------------------
>
> Key: CALCITE-1209
> URL: https://issues.apache.org/jira/browse/CALCITE-1209
> Project: Calcite
> Issue Type: Bug
> Components: avatica
> Affects Versions: avatica-1.7.1
> Reporter: Francis Chuang
> Assignee: Josh Elser
> Priority: Blocker
> Fix For: avatica-1.8.0
>
>
> When sending a typed value as a byte string to avatica using protocol
> buffers, it does not accept the bytes as an array of raw bytes in the
> {{bytes_values}} field.
> To work around it, the data needs to be first base64 encoded and then sent in
> the {{string_value}} field.
> This is the decoded protocol buffer being sent by the thin client:
> {code}
> 1: "org.apache.calcite.avatica.proto.Requests$ExecuteRequest"
> 2 {
> 1 {
> 1: "5141356e-f331-48c9-9d01-d71176ad92e8"
> 2: 126
> 3 {
> 2: "UPSERT INTO PQS.INTEGER_TABLE VALUES(?, ?)"
> 3 {
> 4: 4
> 5: "INTEGER"
> 6: "java.lang.Integer"
> 7: "?1"
> }
> 3 {
> 4: 4294967293
> 5: "VARBINARY"
> 6: "[B"
> 7: "?2"
> }
> 4 {
> 1: 4
> }
> }
> }
> 2 {
> 1: 12
> 4: 2
> }
> 2 {
> 1: 20
> // Data sent in string_value and base64 encoded
> 3: "iVBORw0KGgoAAAANSUhEUgAABmIAAAiwCAYAAAAvCT8OAAAACXBI..."
> }
> 3: 100
> 4: 1
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)