@@ -29,6 +29,8 @@ use community_statement::MultiStatement;
2929
3030use sqlite as sql;
3131
32+ use statistics:: STATISTICS ;
33+
3234#[ derive( Clone ) ]
3335pub struct ReplicationBook {
3436 data : Arc < RwLock < FnvHashMap < String , ( MultiStatement , bool ) > > > ,
@@ -817,6 +819,10 @@ pub fn listen_and_execute<'a, L: 'a + LoopData>(
817819 |_| {
818820 let result =
819821 do_execute ( & loopdata. get_db ( ) , query) ;
822+ match result {
823+ Ok ( _) => STATISTICS . exec_ok ( ) ,
824+ Err ( _) => STATISTICS . exec_err ( ) ,
825+ }
820826 return_value ( & client, result) ;
821827 } ,
822828 ) ;
@@ -833,6 +839,20 @@ pub fn listen_and_execute<'a, L: 'a + LoopData>(
833839 |_| {
834840 let result =
835841 do_query ( & loopdata. get_db ( ) , query) ;
842+ match ( & return_method, & result) {
843+ ( ReturnMethod :: Reply , Ok ( _) ) => {
844+ STATISTICS . query_ok ( )
845+ }
846+ ( ReturnMethod :: Reply , Err ( _) ) => {
847+ STATISTICS . query_err ( )
848+ }
849+ ( ReturnMethod :: Stream { .. } , Ok ( _) ) => {
850+ STATISTICS . query_into_ok ( )
851+ }
852+ ( ReturnMethod :: Stream { .. } , Err ( _) ) => {
853+ STATISTICS . query_into_err ( )
854+ }
855+ } ;
836856 return_value_v2 (
837857 & client,
838858 & return_method,
@@ -853,6 +873,10 @@ pub fn listen_and_execute<'a, L: 'a + LoopData>(
853873 let result = loopdata
854874 . get_replication_book ( )
855875 . update_statement ( identifier, statement) ;
876+ match result {
877+ Ok ( _) => STATISTICS . update_statement_ok ( ) ,
878+ Err ( _) => STATISTICS . update_statement_err ( ) ,
879+ } ;
856880 return_value ( & client, result)
857881 }
858882 Ok ( Command :: DeleteStatement { identifier, client } ) => {
@@ -863,7 +887,10 @@ pub fn listen_and_execute<'a, L: 'a + LoopData>(
863887 let result = loopdata
864888 . get_replication_book ( )
865889 . delete_statement ( identifier) ;
866-
890+ match result {
891+ Ok ( _) => STATISTICS . delete_statement_ok ( ) ,
892+ Err ( _) => STATISTICS . delete_statement_err ( ) ,
893+ }
867894 return_value ( & client, result) ;
868895 }
869896 Ok ( Command :: CompileStatement {
@@ -878,6 +905,10 @@ pub fn listen_and_execute<'a, L: 'a + LoopData>(
878905 let result = loopdata
879906 . get_replication_book ( )
880907 . insert_new_statement ( identifier, statement) ;
908+ match result {
909+ Ok ( _) => STATISTICS . create_statement_ok ( ) ,
910+ Err ( _) => STATISTICS . create_statement_err ( ) ,
911+ }
881912 return_value ( & client, result) ;
882913 }
883914
@@ -896,6 +927,10 @@ pub fn listen_and_execute<'a, L: 'a + LoopData>(
896927 let result = loopdata
897928 . get_replication_book ( )
898929 . exec_statement ( identifier, & arguments) ;
930+ match result {
931+ Ok ( _) => STATISTICS . exec_statement_ok ( ) ,
932+ Err ( _) => STATISTICS . exec_statement_err ( ) ,
933+ }
899934 return_value ( & client, result) ;
900935 } ,
901936 ) ;
@@ -915,6 +950,20 @@ pub fn listen_and_execute<'a, L: 'a + LoopData>(
915950 identifier,
916951 arguments. as_slice ( ) ,
917952 ) ;
953+ match ( & return_method, & result) {
954+ ( ReturnMethod :: Reply , Ok ( _) ) => {
955+ STATISTICS . query_statement_ok ( )
956+ }
957+ ( ReturnMethod :: Reply , Err ( _) ) => {
958+ STATISTICS . query_statement_err ( )
959+ }
960+ ( ReturnMethod :: Stream { .. } , Ok ( _) ) => {
961+ STATISTICS . query_statement_into_ok ( )
962+ }
963+ ( ReturnMethod :: Stream { .. } , Err ( _) ) => {
964+ STATISTICS . query_statement_into_err ( )
965+ }
966+ } ;
918967 return_value_v2 (
919968 & client,
920969 & return_method,
0 commit comments