joao-r-reis commented on code in PR #1868:
URL:
https://github.com/apache/cassandra-gocql-driver/pull/1868#discussion_r2012238698
##########
conn.go:
##########
@@ -1371,76 +1376,80 @@ func (c *Conn) executeQuery(ctx context.Context, qry
*Query) *Iter {
value := values[i]
typ := info.request.columns[i].TypeInfo
if err := marshalQueryValue(typ, value, v); err != nil {
- return &Iter{err: err}
+ iter.err = err
+ return iter
}
}
// if the metadata was not present in the response then we
should not skip it
- params.skipMeta = !(c.session.cfg.DisableSkipMetadata ||
qry.disableSkipMetadata) && info != nil && info.response.flags&flagNoMetaData
== 0
+ params.skipMeta = !(c.session.cfg.DisableSkipMetadata ||
qryOpts.disableSkipMetadata) && info != nil &&
info.response.flags&flagNoMetaData == 0
frame = &writeExecuteFrame{
preparedID: info.id,
params: params,
- customPayload: qry.customPayload,
+ customPayload: qryOpts.customPayload,
}
// Set "keyspace" and "table" property in the query if it is
present in preparedMetadata
- qry.routingInfo.mu.Lock()
- qry.routingInfo.keyspace = info.request.keyspace
- qry.routingInfo.table = info.request.table
- qry.routingInfo.mu.Unlock()
+ q.routingInfo.mu.Lock()
Review Comment:
> Does this still need to lock? I don't think it does unless we expect
GetRoutingKey to be called from separate goroutines?
I think this is still the case due to speculative executions (and possibly
retries I'm not sure).
> Also can we just change routingInfo to not be a struct anymore? Seems like
it only was because...
>> // routingInfo is a pointer because Query can be copied and copyable
struct can't hold a mutex.
> Do we still allow copies of internalQuery? If so, maybe we should make a
Clone method?
I don't think it needs to be a struct anymore, I'll change it.
--
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]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]