pgdog.git / summary / log / commit / refs

commit    2cdfdfe807471bd08820e172b68f035403dd070b
Author:   Lev Kokotov <lev.kokotov@gmail.com>
Date:     Sun Jan 05 09:06:02 2025 +0000

    move


pgdog/Cargo.toml | 0 pgdog/LICENSE | 0 pgdog/src}/admin/backend.rs | 2 +- pgdog/src}/admin/error.rs | 0 pgdog/src}/admin/mod.rs | 0 pgdog/src}/admin/parser.rs | 0 pgdog/src}/admin/pause.rs | 0 pgdog/src}/admin/prelude.rs | 0 pgdog/src}/admin/reconnect.rs | 0 pgdog/src}/auth/mod.rs | 0 pgdog/src}/auth/scram/mod.rs | 0 pgdog/src}/backend/databases.rs | 0 pgdog/src}/backend/error.rs | 0 pgdog/src}/backend/mod.rs | 0 pgdog/src}/backend/pool/address.rs | 0 pgdog/src}/backend/pool/ban.rs | 0 pgdog/src}/backend/pool/cluster.rs | 0 pgdog/src}/backend/pool/config.rs | 0 pgdog/src}/backend/pool/connection.rs | 2 +- pgdog/src}/backend/pool/error.rs | 2 +- pgdog/src}/backend/pool/guard.rs | 0 pgdog/src}/backend/pool/healthcheck.rs | 0 pgdog/src}/backend/pool/inner.rs | 0 pgdog/src}/backend/pool/mod.rs | 0 pgdog/src}/backend/pool/monitor.rs | 26 ++++- pgdog/src}/backend/pool/pool.rs | 2 +- pgdog/src}/backend/pool/replicas.rs | 4 +- pgdog/src}/backend/pool/shard.rs | 0 pgdog/src}/backend/pool/stats.rs | 0 pgdog/src}/backend/server.rs | 0 pgdog/src}/channel.rs | 0 pgdog/src}/config/error.rs | 0 pgdog/src}/config/mod.rs | 0 pgdog/src}/frontend/buffer.rs | 0 pgdog/src}/frontend/client.rs | 0 pgdog/src}/frontend/error.rs | 0 pgdog/src}/frontend/listener.rs | 0 pgdog/src}/frontend/mod.rs | 1 + pgdog/src/frontend/router/mod.rs | 3 + pgdog/src/frontend/router/parser/error.rs | 10 ++ pgdog/src/frontend/router/parser/lexer.rs | 129 +++++++++++++++++++++ pgdog/src/frontend/router/parser/mod.rs | 9 ++ pgdog/src/frontend/router/parser/select.rs | 0 pgdog/src/frontend/router/parser/tokens.rs | 40 +++++++ pgdog/src}/main.rs | 0 pgdog/src}/net/bidirectional.rs | 0 pgdog/src}/net/error.rs | 0 pgdog/src}/net/messages/auth/mod.rs | 0 pgdog/src}/net/messages/backend_key.rs | 0 .../src}/net/messages/command_complete.rs | 0 pgdog/src}/net/messages/error_response.rs | 0 pgdog/src}/net/messages/hello.rs | 0 pgdog/src}/net/messages/mod.rs | 0 .../src}/net/messages/parameter_status.rs | 0 pgdog/src/net/messages/parse.rs | 59 ++++++++++ pgdog/src}/net/messages/payload.rs | 0 pgdog/src}/net/messages/prelude.rs | 0 pgdog/src}/net/messages/query.rs | 0 pgdog/src}/net/messages/rfq.rs | 0 pgdog/src}/net/messages/terminate.rs | 0 pgdog/src}/net/mod.rs | 0 pgdog/src}/net/parameter.rs | 0 pgdog/src}/net/stream.rs | 0 pgdog/src}/net/tls.rs | 0 pgdog/src}/plugin.rs | 0 pgdog/src}/state.rs | 0 pgdog/src}/stats/mod.rs | 0 pgdog/tests}/cert.pem | 0 pgdog/tests}/key.pem | 0 pgdog/tests}/pgbouncer.ini | 0 pgdog/tests}/userlist.txt | 0 src/net/messages/parse.rs | 7 -- 72 files changed, 280 insertions(+), 16 deletions(-) diff --git a/Cargo.toml b/pgdog/Cargo.toml similarity index 100% rename from Cargo.toml rename to pgdog/Cargo.toml diff --git a/LICENSE b/pgdog/LICENSE similarity index 100% rename from LICENSE rename to pgdog/LICENSE diff --git a/src/admin/backend.rs b/pgdog/src/admin/backend.rs similarity index 98% rename from src/admin/backend.rs rename to pgdog/src/admin/backend.rs index 1eaa9602..03414def 100644 --- a/src/admin/backend.rs +++ b/pgdog/src/admin/backend.rs @@ -10,7 +10,7 @@ use crate::net::messages::{FromBytes, Protocol, Query, ReadyForQuery}; use super::parser::Parser; use super::prelude::Message; -use super::{Command, Error}; +use super::Error; /// Admin backend. pub struct Backend { diff --git a/src/admin/error.rs b/pgdog/src/admin/error.rs similarity index 100% rename from src/admin/error.rs rename to pgdog/src/admin/error.rs diff --git a/src/admin/mod.rs b/pgdog/src/admin/mod.rs similarity index 100% rename from src/admin/mod.rs rename to pgdog/src/admin/mod.rs diff --git a/src/admin/parser.rs b/pgdog/src/admin/parser.rs similarity index 100% rename from src/admin/parser.rs rename to pgdog/src/admin/parser.rs diff --git a/src/admin/pause.rs b/pgdog/src/admin/pause.rs similarity index 100% rename from src/admin/pause.rs rename to pgdog/src/admin/pause.rs diff --git a/src/admin/prelude.rs b/pgdog/src/admin/prelude.rs similarity index 100% rename from src/admin/prelude.rs rename to pgdog/src/admin/prelude.rs diff --git a/src/admin/reconnect.rs b/pgdog/src/admin/reconnect.rs similarity index 100% rename from src/admin/reconnect.rs rename to pgdog/src/admin/reconnect.rs diff --git a/src/auth/mod.rs b/pgdog/src/auth/mod.rs similarity index 100% rename from src/auth/mod.rs rename to pgdog/src/auth/mod.rs diff --git a/src/auth/scram/mod.rs b/pgdog/src/auth/scram/mod.rs similarity index 100% rename from src/auth/scram/mod.rs rename to pgdog/src/auth/scram/mod.rs diff --git a/src/backend/databases.rs b/pgdog/src/backend/databases.rs similarity index 100% rename from src/backend/databases.rs rename to pgdog/src/backend/databases.rs diff --git a/src/backend/error.rs b/pgdog/src/backend/error.rs similarity index 100% rename from src/backend/error.rs rename to pgdog/src/backend/error.rs diff --git a/src/backend/mod.rs b/pgdog/src/backend/mod.rs similarity index 100% rename from src/backend/mod.rs rename to pgdog/src/backend/mod.rs diff --git a/src/backend/pool/address.rs b/pgdog/src/backend/pool/address.rs similarity index 100% rename from src/backend/pool/address.rs rename to pgdog/src/backend/pool/address.rs diff --git a/src/backend/pool/ban.rs b/pgdog/src/backend/pool/ban.rs similarity index 100% rename from src/backend/pool/ban.rs rename to pgdog/src/backend/pool/ban.rs diff --git a/src/backend/pool/cluster.rs b/pgdog/src/backend/pool/cluster.rs similarity index 100% rename from src/backend/pool/cluster.rs rename to pgdog/src/backend/pool/cluster.rs diff --git a/src/backend/pool/config.rs b/pgdog/src/backend/pool/config.rs similarity index 100% rename from src/backend/pool/config.rs rename to pgdog/src/backend/pool/config.rs diff --git a/src/backend/pool/connection.rs b/pgdog/src/backend/pool/connection.rs similarity index 98% rename from src/backend/pool/connection.rs rename to pgdog/src/backend/pool/connection.rs index 50801f80..b6b7eebc 100644 --- a/src/backend/pool/connection.rs +++ b/pgdog/src/backend/pool/connection.rs @@ -52,7 +52,7 @@ impl Connection { if self.server.is_none() && self.admin.is_none() { match self.try_conn(id).await { Ok(()) => (), - Err(Error::Pool(super::Error::ShutDown)) => { + Err(Error::Pool(super::Error::Offline)) => { self.reload()?; return Ok(self.try_conn(id).await?); } diff --git a/src/backend/pool/error.rs b/pgdog/src/backend/pool/error.rs similarity index 97% rename from src/backend/pool/error.rs rename to pgdog/src/backend/pool/error.rs index cd658a5e..67bdbfa5 100644 --- a/src/backend/pool/error.rs +++ b/pgdog/src/backend/pool/error.rs @@ -28,5 +28,5 @@ pub enum Error { HealtcheckError, #[error("pool is shut down")] - ShutDown, + Offline, } diff --git a/src/backend/pool/guard.rs b/pgdog/src/backend/pool/guard.rs similarity index 100% rename from src/backend/pool/guard.rs rename to pgdog/src/backend/pool/guard.rs diff --git a/src/backend/pool/healthcheck.rs b/pgdog/src/backend/pool/healthcheck.rs similarity index 100% rename from src/backend/pool/healthcheck.rs rename to pgdog/src/backend/pool/healthcheck.rs diff --git a/src/backend/pool/inner.rs b/pgdog/src/backend/pool/inner.rs similarity index 100% rename from src/backend/pool/inner.rs rename to pgdog/src/backend/pool/inner.rs diff --git a/src/backend/pool/mod.rs b/pgdog/src/backend/pool/mod.rs similarity index 100% rename from src/backend/pool/mod.rs rename to pgdog/src/backend/pool/mod.rs diff --git a/src/backend/pool/monitor.rs b/pgdog/src/backend/pool/monitor.rs similarity index 91% rename from src/backend/pool/monitor.rs rename to pgdog/src/backend/pool/monitor.rs index b243878e..526b5f0c 100644 --- a/src/backend/pool/monitor.rs +++ b/pgdog/src/backend/pool/monitor.rs @@ -52,6 +52,7 @@ impl Monitor { connect_timeout, paused, banned, + online, ) = { let guard = self.pool.lock(); @@ -61,9 +62,14 @@ impl Monitor { guard.config().connect_timeout(), guard.paused, guard.banned(), + guard.online, ) }; + if !online { + break; + } + // If the pool is paused, don't open new connections. if paused { continue; @@ -103,9 +109,19 @@ impl Monitor { let mut unbanned = false; select! { _ = tick.tick() => { - // Skip healtcheck if offline or paused. - if !pool.available() { - continue; + { + let guard = pool.lock(); + + // Pool is offline, exit. + if !guard.online { + break; + } + + // Pool is paused, skip healtcheck. + if guard.paused { + continue; + } + } if Self::healthcheck(&pool).await.is_ok() { @@ -146,6 +162,10 @@ impl Monitor { let mut guard = pool.lock(); + if !guard.online { + break; + } + guard.close_idle(now); guard.close_old(now); let unbanned = guard.check_ban(now); diff --git a/src/backend/pool/pool.rs b/pgdog/src/backend/pool/pool.rs similarity index 99% rename from src/backend/pool/pool.rs rename to pgdog/src/backend/pool/pool.rs index 784287b8..e218b6e6 100644 --- a/src/backend/pool/pool.rs +++ b/pgdog/src/backend/pool/pool.rs @@ -134,7 +134,7 @@ impl Pool { } if !guard.online { - return Err(Error::ShutDown); + return Err(Error::Offline); } let conn = if let Some(server) = guard.conns.pop_back() { diff --git a/src/backend/pool/replicas.rs b/pgdog/src/backend/pool/replicas.rs similarity index 97% rename from src/backend/pool/replicas.rs rename to pgdog/src/backend/pool/replicas.rs index f4618130..84775555 100644 --- a/src/backend/pool/replicas.rs +++ b/pgdog/src/backend/pool/replicas.rs @@ -92,7 +92,7 @@ impl Replicas { banned += 1; continue; } - Err(Error::ShutDown) => continue, + Err(Error::Offline) => continue, Err(err) => { error!("{} [{}]", err, candidate.addr()); } @@ -106,6 +106,6 @@ impl Replicas { } } - Err(Error::ShutDown) + Err(Error::Offline) } } diff --git a/src/backend/pool/shard.rs b/pgdog/src/backend/pool/shard.rs similarity index 100% rename from src/backend/pool/shard.rs rename to pgdog/src/backend/pool/shard.rs diff --git a/src/backend/pool/stats.rs b/pgdog/src/backend/pool/stats.rs similarity index 100% rename from src/backend/pool/stats.rs rename to pgdog/src/backend/pool/stats.rs diff --git a/src/backend/server.rs b/pgdog/src/backend/server.rs similarity index 100% rename from src/backend/server.rs rename to pgdog/src/backend/server.rs diff --git a/src/channel.rs b/pgdog/src/channel.rs similarity index 100% rename from src/channel.rs rename to pgdog/src/channel.rs diff --git a/src/config/error.rs b/pgdog/src/config/error.rs similarity index 100% rename from src/config/error.rs rename to pgdog/src/config/error.rs diff --git a/src/config/mod.rs b/pgdog/src/config/mod.rs similarity index 100% rename from src/config/mod.rs rename to pgdog/src/config/mod.rs diff --git a/src/frontend/buffer.rs b/pgdog/src/frontend/buffer.rs similarity index 100% rename from src/frontend/buffer.rs rename to pgdog/src/frontend/buffer.rs diff --git a/src/frontend/client.rs b/pgdog/src/frontend/client.rs similarity index 100% rename from src/frontend/client.rs rename to pgdog/src/frontend/client.rs diff --git a/src/frontend/error.rs b/pgdog/src/frontend/error.rs similarity index 100% rename from src/frontend/error.rs rename to pgdog/src/frontend/error.rs diff --git a/src/frontend/listener.rs b/pgdog/src/frontend/listener.rs similarity index 100% rename from src/frontend/listener.rs rename to pgdog/src/frontend/listener.rs diff --git a/src/frontend/mod.rs b/pgdog/src/frontend/mod.rs similarity index 92% rename from src/frontend/mod.rs rename to pgdog/src/frontend/mod.rs index a340eb56..025edca4 100644 --- a/src/frontend/mod.rs +++ b/pgdog/src/frontend/mod.rs @@ -4,6 +4,7 @@ pub mod buffer; pub mod client; pub mod error; pub mod listener; +pub mod router; pub use buffer::Buffer; pub use client::Client; diff --git a/pgdog/src/frontend/router/mod.rs b/pgdog/src/frontend/router/mod.rs new file mode 100644 index 00000000..80a98eb2 --- /dev/null +++ b/pgdog/src/frontend/router/mod.rs @@ -0,0 +1,3 @@ +//! Query router. + +pub mod parser; diff --git a/pgdog/src/frontend/router/parser/error.rs b/pgdog/src/frontend/router/parser/error.rs new file mode 100644 index 00000000..2dfc580d --- /dev/null +++ b/pgdog/src/frontend/router/parser/error.rs @@ -0,0 +1,10 @@ +//! Parser errors. + +use thiserror::Error; + +/// Parser errors. +#[derive(Debug, Error)] +pub enum Error { + #[error("syntax error")] + Syntax, +} diff --git a/pgdog/src/frontend/router/parser/lexer.rs b/pgdog/src/frontend/router/parser/lexer.rs new file mode 100644 index 00000000..8d10d96c --- /dev/null +++ b/pgdog/src/frontend/router/parser/lexer.rs @@ -0,0 +1,129 @@ +//! SQL lexer. + +use std::mem::take; + +use super::{Error, Token}; + +/// Lexer. +pub struct Lexer<'a> { + sql: &'a str, + string: bool, + entity: bool, +} + +impl<'a> Lexer<'a> { + pub fn new(sql: &'a str) -> Self { + Self { + sql, + string: false, + entity: false, + } + } + + pub fn lex(mut self) -> Result<Vec<Token>, Error> { + let mut tokens = vec![]; + let mut buffer = String::new(); + let mut iter = self.sql.chars().peekable(); + + while let Some(c) = iter.next() { + match c { + '\'' => { + if !self.string { + self.string = true; + continue; + } + + let next = iter.peek(); + + match next { + // Escape + Some('\'') => { + let _ = iter.next(); + buffer.push('\''); + } + + Some(' ') | Some(',') | Some(';') | None => { + self.string = false; + let _ = iter.next(); + tokens.push(Token::String(take(&mut buffer))); + } + + _ => continue, + } + } + + '"' => { + if !self.entity { + self.entity = true; + continue; + } + + let next = iter.peek(); + + match next { + // Escape + Some('"') => { + let _ = iter.next(); + buffer.push('"'); + } + + Some(' ') | Some(',') | Some(';') | None => { + self.entity = false; + let _ = iter.next(); + tokens.push(Token::Entity(take(&mut buffer))); + } + + _ => continue, + } + } + + ' ' | ';' | ',' => { + if self.entity || self.string { + buffer.push(c); + } else { + let token = match buffer.as_str() { + "select" => Token::Select, + "with" => Token::With, + "from" => Token::From, + "*" => Token::Star, + "" => continue, + _ => Token::Entity(take(&mut buffer)), + }; + tokens.push(token); + let token = match c { + ' ' => Token::Space, + ',' => Token::Comma, + ';' => Token::End, + _ => unreachable!(), + }; + tokens.push(token); + buffer.clear(); + } + } + + _ => { + if self.string || self.entity { + buffer.push(c); + } else { + buffer.push(c.to_ascii_lowercase()); + } + } + } + } + + Ok(tokens) + } +} + +#[cfg(test)] +mod test { + use super::*; + + #[test] + fn test_basic() { + let sql = r#"select a,b, cross_apple,"column a,!" from test;"#; + let lexer = Lexer::new(sql); + let tokens = lexer.lex().unwrap(); + panic!("{:?}", tokens); + } +} diff --git a/pgdog/src/frontend/router/parser/mod.rs b/pgdog/src/frontend/router/parser/mod.rs new file mode 100644 index 00000000..d2401f59 --- /dev/null +++ b/pgdog/src/frontend/router/parser/mod.rs @@ -0,0 +1,9 @@ +//! Statement parser. + +pub mod error; +pub mod lexer; +pub mod select; +pub mod tokens; + +pub use error::Error; +pub use tokens::Token; diff --git a/pgdog/src/frontend/router/parser/select.rs b/pgdog/src/frontend/router/parser/select.rs new file mode 100644 index 00000000..e69de29b diff --git a/pgdog/src/frontend/router/parser/tokens.rs b/pgdog/src/frontend/router/parser/tokens.rs new file mode 100644 index 00000000..99fdee91 --- /dev/null +++ b/pgdog/src/frontend/router/parser/tokens.rs @@ -0,0 +1,40 @@ +//! PostgreSQL protocol tokens. + +/// Protocol token. +#[derive(Debug)] +pub enum Token { + /// ' ' + Space, + /// , + Comma, + /// "users" + Entity(String), + /// 'users' + String(String), + /// 5 + Integer(i64), + /// 5.5 + Real(f64), + + /// WITH + With, + /// RECURSIVE + Recursive, + Select, + From, + Order, + Limit, + Fetch, + For, + Update, + Share, + KeyShare, + Lateral, + Natural, + Join, + Outer, + Left, + Right, + Star, + End, +} diff --git a/src/main.rs b/pgdog/src/main.rs similarity index 100% rename from src/main.rs rename to pgdog/src/main.rs diff --git a/src/net/bidirectional.rs b/pgdog/src/net/bidirectional.rs similarity index 100% rename from src/net/bidirectional.rs rename to pgdog/src/net/bidirectional.rs diff --git a/src/net/error.rs b/pgdog/src/net/error.rs similarity index 100% rename from src/net/error.rs rename to pgdog/src/net/error.rs diff --git a/src/net/messages/auth/mod.rs b/pgdog/src/net/messages/auth/mod.rs similarity index 100% rename from src/net/messages/auth/mod.rs rename to pgdog/src/net/messages/auth/mod.rs diff --git a/src/net/messages/backend_key.rs b/pgdog/src/net/messages/backend_key.rs similarity index 100% rename from src/net/messages/backend_key.rs rename to pgdog/src/net/messages/backend_key.rs diff --git a/src/net/messages/command_complete.rs b/pgdog/src/net/messages/command_complete.rs similarity index 100% rename from src/net/messages/command_complete.rs rename to pgdog/src/net/messages/command_complete.rs diff --git a/src/net/messages/error_response.rs b/pgdog/src/net/messages/error_response.rs similarity index 100% rename from src/net/messages/error_response.rs rename to pgdog/src/net/messages/error_response.rs diff --git a/src/net/messages/hello.rs b/pgdog/src/net/messages/hello.rs similarity index 100% rename from src/net/messages/hello.rs rename to pgdog/src/net/messages/hello.rs diff --git a/src/net/messages/mod.rs b/pgdog/src/net/messages/mod.rs similarity index 100% rename from src/net/messages/mod.rs rename to pgdog/src/net/messages/mod.rs diff --git a/src/net/messages/parameter_status.rs b/pgdog/src/net/messages/parameter_status.rs similarity index 100% rename from src/net/messages/parameter_status.rs rename to pgdog/src/net/messages/parameter_status.rs diff --git a/pgdog/src/net/messages/parse.rs b/pgdog/src/net/messages/parse.rs new file mode 100644 index 00000000..47e25b1d --- /dev/null +++ b/pgdog/src/net/messages/parse.rs @@ -0,0 +1,59 @@ +//! Parse (F) message. + +use crate::net::c_string_buf; + +use super::code; +use super::prelude::*; + +/// Parse (F) message. +#[derive(Debug)] +pub struct Parse { + /// Prepared statement name. + pub name: String, + /// Prepared statement query. + pub query: String, + /// List of data types if any are declared. + pub data_types: Vec<i32>, +} + +impl FromBytes for Parse { + fn from_bytes(mut bytes: Bytes) -> Result<Self, Error> { + code!(bytes, 'P'); + let _len = bytes.get_i32(); + let name = c_string_buf(&mut bytes); + let query = c_string_buf(&mut bytes); + let params = bytes.get_i16() as usize; + let data_types = (0..params) + .into_iter() + .map(|_| bytes.get_i32()) + .collect::<Vec<_>>(); + + Ok(Self { + name, + query, + data_types, + }) + } +} + +impl ToBytes for Parse { + fn to_bytes(&self) -> Result<Bytes, Error> { + let mut payload = Payload::named(self.code()); + + payload.put_string(&self.name); + payload.put_string(&self.query); + payload.put_i16(self.data_types.len() as i16); + + for type_ in &self.data_types { + payload.put_i32(*type_); + } + + Ok(payload.freeze()) + } +} + +impl Protocol for Parse { + fn code(&self) -> char { + 'P' + } +} diff --git a/src/net/messages/payload.rs b/pgdog/src/net/messages/payload.rs similarity index 100% rename from src/net/messages/payload.rs rename to pgdog/src/net/messages/payload.rs diff --git a/src/net/messages/prelude.rs b/pgdog/src/net/messages/prelude.rs similarity index 100% rename from src/net/messages/prelude.rs rename to pgdog/src/net/messages/prelude.rs diff --git a/src/net/messages/query.rs b/pgdog/src/net/messages/query.rs similarity index 100% rename from src/net/messages/query.rs rename to pgdog/src/net/messages/query.rs diff --git a/src/net/messages/rfq.rs b/pgdog/src/net/messages/rfq.rs similarity index 100% rename from src/net/messages/rfq.rs rename to pgdog/src/net/messages/rfq.rs diff --git a/src/net/messages/terminate.rs b/pgdog/src/net/messages/terminate.rs similarity index 100% rename from src/net/messages/terminate.rs rename to pgdog/src/net/messages/terminate.rs diff --git a/src/net/mod.rs b/pgdog/src/net/mod.rs similarity index 100% rename from src/net/mod.rs rename to pgdog/src/net/mod.rs diff --git a/src/net/parameter.rs b/pgdog/src/net/parameter.rs similarity index 100% rename from src/net/parameter.rs rename to pgdog/src/net/parameter.rs diff --git a/src/net/stream.rs b/pgdog/src/net/stream.rs similarity index 100% rename from src/net/stream.rs rename to pgdog/src/net/stream.rs diff --git a/src/net/tls.rs b/pgdog/src/net/tls.rs similarity index 100% rename from src/net/tls.rs rename to pgdog/src/net/tls.rs diff --git a/src/plugin.rs b/pgdog/src/plugin.rs similarity index 100% rename from src/plugin.rs rename to pgdog/src/plugin.rs diff --git a/src/state.rs b/pgdog/src/state.rs similarity index 100% rename from src/state.rs rename to pgdog/src/state.rs diff --git a/src/stats/mod.rs b/pgdog/src/stats/mod.rs similarity index 100% rename from src/stats/mod.rs rename to pgdog/src/stats/mod.rs diff --git a/tests/cert.pem b/pgdog/tests/cert.pem similarity index 100% rename from tests/cert.pem rename to pgdog/tests/cert.pem diff --git a/tests/key.pem b/pgdog/tests/key.pem similarity index 100% rename from tests/key.pem rename to pgdog/tests/key.pem diff --git a/tests/pgbouncer.ini b/pgdog/tests/pgbouncer.ini similarity index 100% rename from tests/pgbouncer.ini rename to pgdog/tests/pgbouncer.ini diff --git a/tests/userlist.txt b/pgdog/tests/userlist.txt similarity index 100% rename from tests/userlist.txt rename to pgdog/tests/userlist.txt diff --git a/src/net/messages/parse.rs b/src/net/messages/parse.rs deleted file mode 100644 index 220bd454..00000000 --- a/src/net/messages/parse.rs +++ /dev/null @@ -1,7 +0,0 @@ -//! Parse (F) message. - -/// Parse (F) message. -#[derive(Debug)] -pub struct Parse { - query: String, -} [parent: 10a7a8729527]