There's one point I want to bring up first about "optional" fields. Every attribute on Avatica's messages are (should be) listed as optional. This is how we correctly handle a "drift" in the protocol itself. If we have fields marked as required, we would never be able to change them which may cause problems.

It would probably be good to work towards tying docs to a specific version so we can remove this ambiguity :)

To answer your question, no, there will be no Signature for INSERT/UPSERT operations (any operation which returns a number of rows affected instead of a ResultSet). For SQL which generate a ResultSet (some rows of data), the Signature would "always" be provided.

On 7/11/17 4:38 AM, F21 wrote:
I have a bug report for the Go Avatica driver where someone executed an `UPSERT` statement and caused the driver to crash. See https://github.com/Boostport/avatica/issues/34

The driver crashed, because we tried to read `ResultSetResponse.Signature` and it was null as the statement was an upsert statement.

According to the protobuf documentation [0], signature is non-optional and should always be present. Does this guarantee extend to data modification statements like UPSERT?

Cheers,

Francis


[0] https://calcite.apache.org/avatica/docs/protobuf_reference.html#resultsetresponse

Reply via email to