diff --git a/lib/PgSQL_Session.cpp b/lib/PgSQL_Session.cpp index 086148c38..b4846038c 100644 --- a/lib/PgSQL_Session.cpp +++ b/lib/PgSQL_Session.cpp @@ -4470,8 +4470,13 @@ __exit_set_destination_hostgroup: next_query_flagIN = qpo->next_query_flagIN; } - if (qpo->destination_hostgroup >= 0 && transaction_persistent_hostgroup == -1) { - current_hostgroup = qpo->destination_hostgroup; + if (transaction_persistent_hostgroup == -1) { + if (qpo->destination_hostgroup >= 0) { + current_hostgroup = qpo->destination_hostgroup; + } else { + // No query rule matched - use default hostgroup + current_hostgroup = default_hostgroup; + } } // Hostgroup locking check