zeroshade commented on issue #41556: URL: https://github.com/apache/arrow/issues/41556#issuecomment-2096706042
@matthewmturner I just want to clarify something, the response from `DoPut` is a `PutResult` message that contains a single `bytes` field named `app_metadata`. In the case of the `DoPut` for `DoPutPreparedStatementResult` we were deserializing the `app_metadata` directly into a `DoPutPreparedStatementResult`, which contains the handle as a `bytes` member. Are you expecting the `app_metadata` of `PutResult` to be a an `Any` protobuf in order to retrieve the `DoPutPreparedStatementResult`? Or are you expecting the `handle` member to be an `Any`? @lidavidm Since previously `DoPutPreparedStatement` didn't return anything until we added the `DoPutPreparedStatementResult` for updating the handle, there wasn't a convention for what should be returned. Looking at the results from the other messages I see the following general convention: * Responses from requests that go through the underlying `DoAction` (BeginSavepointResult, BeginTransactionResult, CancelQueryResult) are assumed to be serialized in an `Any` * responses from `DoPut` such as `DoPutUpdateResult`, are not assumed to be serialized as an `Any` inside of the `app_metadata` field of `PutResult`. That said, it does appear that the Go implementation is outnumbered here as the C++ implementation *does* assume an `Any` wrapper around the `DoPutPreparedStatementResult`, but it just seems odd to me as it breaks the existing convention that we had, leaving it to be kind of arbitrary and not documented anywhere. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
