@@ -6,6 +6,7 @@ use super::messages::execute::Execute;
66use super :: messages:: parse:: Parse ;
77use super :: messages:: query:: Query ;
88use super :: messages:: FrontendCode as Code ;
9+ use super :: parser:: SqlParser ;
910use super :: protocol:: { self } ;
1011use crate :: connect:: Sender ;
1112use crate :: eql:: Identifier ;
@@ -22,7 +23,7 @@ use crate::prometheus::{
2223 CLIENTS_BYTES_RECEIVED_TOTAL , ENCRYPTED_VALUES_TOTAL , ENCRYPTION_DURATION_SECONDS ,
2324 ENCRYPTION_ERROR_TOTAL , ENCRYPTION_REQUESTS_TOTAL , SERVER_BYTES_SENT_TOTAL ,
2425 STATEMENTS_ENCRYPTED_TOTAL , STATEMENTS_PASSTHROUGH_MAPPING_DISABLED_TOTAL ,
25- STATEMENTS_PASSTHROUGH_TOTAL , STATEMENTS_TOTAL , STATEMENTS_UNMAPPABLE_TOTAL ,
26+ STATEMENTS_PASSTHROUGH_TOTAL , STATEMENTS_UNMAPPABLE_TOTAL ,
2627} ;
2728use crate :: proxy:: Proxy ;
2829use crate :: EqlEncrypted ;
@@ -34,17 +35,13 @@ use pg_escape::quote_literal;
3435use postgres_types:: Type ;
3536use serde:: Serialize ;
3637use sqltk:: parser:: ast:: { self , Value } ;
37- use sqltk:: parser:: dialect:: PostgreSqlDialect ;
38- use sqltk:: parser:: parser:: Parser ;
3938use sqltk:: NodeKey ;
4039use std:: collections:: HashMap ;
4140use std:: sync:: Arc ;
4241use std:: time:: Instant ;
4342use tokio:: io:: { AsyncRead , AsyncWrite , AsyncWriteExt } ;
4443use tracing:: { debug, error, info, warn} ;
4544
46- const DIALECT : PostgreSqlDialect = PostgreSqlDialect { } ;
47-
4845/// The PostgreSQL proxy frontend that handles client-to-server message processing.
4946///
5047/// The Frontend intercepts messages from PostgreSQL clients, analyzes SQL statements for
@@ -384,7 +381,7 @@ where
384381 let mut query = Query :: try_from ( bytes) ?;
385382
386383 // Simple Query may contain many statements
387- let parsed_statements = self . parse_statements ( & query. statement ) ?;
384+ let parsed_statements = SqlParser :: parse_statements ( & query. statement ) ?;
388385 let mut transformed_statements = vec ! [ ] ;
389386
390387 debug ! ( target: MAPPER ,
@@ -659,7 +656,7 @@ where
659656 parse = ?message
660657 ) ;
661658
662- let statement = self . parse_statement ( & message. statement ) ?;
659+ let statement = SqlParser :: parse_statement ( & message. statement ) ?;
663660
664661 if let Some ( mapping_disabled) = self . context . maybe_set_unsafe_disable_mapping ( & statement) {
665662 warn ! (
@@ -748,42 +745,6 @@ where
748745 }
749746 }
750747
751- ///
752- /// Parse a SQL statement string into an SqlParser AST
753- ///
754- fn parse_statement ( & mut self , statement : & str ) -> Result < ast:: Statement , Error > {
755- let statement = Parser :: new ( & DIALECT )
756- . try_with_sql ( statement) ?
757- . parse_statement ( ) ?;
758-
759- debug ! ( target: MAPPER ,
760- client_id = self . context. client_id,
761- statement = %statement
762- ) ;
763-
764- counter ! ( STATEMENTS_TOTAL ) . increment ( 1 ) ;
765-
766- Ok ( statement)
767- }
768-
769- ///
770- /// Parse a SQL String potentially containing multiple statements into parsed SqlParser AST
771- ///
772- fn parse_statements ( & mut self , statement : & str ) -> Result < Vec < ast:: Statement > , Error > {
773- let statement = Parser :: new ( & DIALECT )
774- . try_with_sql ( statement) ?
775- . parse_statements ( ) ?;
776-
777- debug ! ( target: MAPPER ,
778- client_id = self . context. client_id,
779- statement = ?statement
780- ) ;
781-
782- counter ! ( STATEMENTS_TOTAL ) . increment ( statement. len ( ) as u64 ) ;
783-
784- Ok ( statement)
785- }
786-
787748 ///
788749 /// Check the Statement AST for DDL
789750 /// Sets a schema changed flag in the Context
0 commit comments