joao-r-reis commented on code in PR #1793: URL: https://github.com/apache/cassandra-gocql-driver/pull/1793#discussion_r1937492865
########## query_executor.go: ########## @@ -83,7 +84,27 @@ func (q *queryExecutor) speculate(ctx context.Context, qry ExecutableQuery, sp S } func (q *queryExecutor) executeQuery(qry ExecutableQuery) (*Iter, error) { - hostIter := q.policy.Pick(qry) + var hostIter NextHost + + // check if the host id is specified for the query, + // if it is, the query should be executed at the corresponding host. + if hostID := qry.GetHostID(); hostID != "" { + pool, ok := q.pool.getPoolByHostID(hostID) + if !ok || !pool.host.IsUp() { + return &Iter{err: ErrNoConnections}, nil + } + hostIter = func() SelectedHost { + // forcing hostIter to always return the same host + // it makes any retries and speculative executions run on the specified host Review Comment: > correctly-behaving selection policies should already be returning not-down hosts but idk if that's guaranteed. We should definitely have that check internally in case a policy returns a downed host, a small optimization that doesn't cost anything basically. I do think we can explore all of these things on a separate issue/PR like @jameshartig is suggesting -- 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: pr-unsubscr...@cassandra.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: pr-unsubscr...@cassandra.apache.org For additional commands, e-mail: pr-h...@cassandra.apache.org