worryg0d commented on code in PR #1793:
URL: 
https://github.com/apache/cassandra-gocql-driver/pull/1793#discussion_r1937157549


##########
session.go:
##########
@@ -1430,6 +1435,22 @@ func (q *Query) releaseAfterExecution() {
        q.decRefCount()
 }
 
+// SetHostID allows to define on which host the query should be executed.
+// If hostID is not set, then the HostSelectionPolicy will be used to pick a 
host.
+// It is recommended to get host id from HostInfo.HostID(), but it is not 
required.
+// It is strongly recommended to use WithContext() with this option because
+// if the specified host goes down during execution, the driver will try to 
send the query to this host until it succeeds
+// which may lead to an endless execution.
+func (q *Query) SetHostID(hostID string) *Query {
+       q.hostID = hostID

Review Comment:
   I spent some time thinking about this more and I'm +1 on what @jameshartig 
says. We at least should have a way to restore `Query.hostID` to default. 
   
   If `SetHostID` takes `*string` it is available, but this makes UX of this 
API way worse IMO. I don't like the idea of creating vars to hold some strings 
and pass a pointer to them. However, if API is `SetHostID(string)` there is no 
way to restore its behavior to default. Once `SetHostID()` is used, it can't be 
changed. Ofc we can expose API `Query.Default()` to restore this behavior, but 
this becomes something very odd to me.
   
   All of this is based on the case when we want to copy the existing `Query` 
and somehow modify it, but I'm unsure how this matches query immutability. By 
this do we understand that once the `Query` obj is created it can't be 
modified? Either it means that the driver doesn't modify `Query` internally 
during its execution? As far as I know, gocql writes some metrics to the query 
obj.



-- 
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

Reply via email to