Before this patch if the query failes (due to "Too many simultaneous
queries" for example) it will not read external tables info, and the
next request will interpret them as the query beginning at got:
DB::Exception: Unknown packet 11861 from client
v2: reordering in the executeQuery() is not enough, since the query
can fail in other places, before, i.e. quotas
v3: I cannot make non-intergration test (since there is no ability to
receive "Unknown packet" via client, only from the server log),
hence added one