COPY OUT support

This commit is contained in:
Lev Kokotov
2022-02-04 08:26:50 -08:00
parent 77507e7343
commit 381f06d46f
2 changed files with 48 additions and 14 deletions

View File

@@ -118,14 +118,21 @@ impl Client {
match code {
'Q' => {
server.send(original).await?;
let response = server.recv().await?;
match write_all_half(&mut self.write, response).await {
Ok(_) => (),
Err(err) => {
server.mark_bad();
return Err(err);
loop {
let response = server.recv().await?;
match write_all_half(&mut self.write, response).await {
Ok(_) => (),
Err(err) => {
server.mark_bad();
return Err(err);
}
};
if !server.is_data_available() {
break;
}
};
}
// Release server
if !server.in_transaction() {
@@ -166,14 +173,20 @@ impl Client {
server.send(self.buffer.clone()).await?;
self.buffer.clear();
let response = server.recv().await?;
match write_all_half(&mut self.write, response).await {
Ok(_) => (),
Err(err) => {
server.mark_bad();
return Err(err);
loop {
let response = server.recv().await?;
match write_all_half(&mut self.write, response).await {
Ok(_) => (),
Err(err) => {
server.mark_bad();
return Err(err);
}
};
if !server.is_data_available() {
break;
}
};
}
// Release server
if !server.in_transaction() {