mirror of
https://github.com/postgresml/pgcat.git
synced 2026-03-23 01:16:30 +00:00
extended
This commit is contained in:
@@ -13,6 +13,7 @@ use crate::server::Server;
|
||||
pub struct Client {
|
||||
read: BufReader<OwnedReadHalf>,
|
||||
write: OwnedWriteHalf,
|
||||
buffer: BytesMut,
|
||||
}
|
||||
|
||||
impl Client {
|
||||
@@ -57,6 +58,7 @@ impl Client {
|
||||
return Ok(Client {
|
||||
read: BufReader::new(read),
|
||||
write: write,
|
||||
buffer: BytesMut::with_capacity(8196),
|
||||
});
|
||||
}
|
||||
|
||||
@@ -86,6 +88,33 @@ impl Client {
|
||||
return Ok(());
|
||||
}
|
||||
|
||||
'P' => {
|
||||
// Extended protocol, let's buffer most of it
|
||||
self.buffer.put(&original[..]);
|
||||
}
|
||||
|
||||
'B' => {
|
||||
self.buffer.put(&original[..]);
|
||||
}
|
||||
|
||||
'D' => {
|
||||
self.buffer.put(&original[..]);
|
||||
}
|
||||
|
||||
'E' => {
|
||||
self.buffer.put(&original[..]);
|
||||
}
|
||||
|
||||
'S' => {
|
||||
// Extended protocol, client requests sync
|
||||
self.buffer.put(&original[..]);
|
||||
server.send(self.buffer.clone()).await?;
|
||||
self.buffer.clear();
|
||||
|
||||
let response = server.recv().await?;
|
||||
write_all_half(&mut self.write, response).await?;
|
||||
}
|
||||
|
||||
_ => {
|
||||
println!(">>> Unexpected code: {}", code);
|
||||
}
|
||||
|
||||
@@ -135,6 +135,7 @@ impl Server {
|
||||
self.buffer.put(&message[..]);
|
||||
|
||||
let code = message.get_u8() as char;
|
||||
|
||||
match code {
|
||||
'Z' => {
|
||||
// Ready for query, time to forward buffer to client.
|
||||
|
||||
Reference in New Issue
Block a user