1515use std:: collections:: BTreeMap ;
1616
1717use serde:: { Deserialize , Serialize } ;
18-
18+ #[ derive( Deserialize , Serialize , Debug , Clone , PartialEq ) ]
19+ pub struct ServerInfo {
20+ pub id : String ,
21+ pub start_time : String ,
22+ }
1923#[ derive( Deserialize , Serialize , Debug , Default , Clone ) ]
2024pub struct SessionState {
2125 #[ serde( skip_serializing_if = "Option::is_none" ) ]
@@ -26,6 +30,13 @@ pub struct SessionState {
2630 pub role : Option < String > ,
2731 #[ serde( skip_serializing_if = "Option::is_none" ) ]
2832 pub secondary_roles : Option < Vec < String > > ,
33+ #[ serde( skip_serializing_if = "Option::is_none" ) ]
34+ pub txn_state : Option < String > ,
35+ #[ serde( skip_serializing_if = "Option::is_none" ) ]
36+ pub last_server_info : Option < ServerInfo > ,
37+ #[ serde( default ) ]
38+ #[ serde( skip_serializing_if = "Vec::is_empty" ) ]
39+ pub last_query_ids : Vec < String > ,
2940}
3041
3142impl SessionState {
@@ -117,6 +128,9 @@ mod test {
117128 settings : Some ( BTreeMap :: new ( ) ) ,
118129 role : None ,
119130 secondary_roles : None ,
131+ txn_state : None ,
132+ last_server_info : None ,
133+ last_query_ids : vec ! [ ] ,
120134 } ) )
121135 . with_pagination ( Some ( PaginationConfig {
122136 wait_time_secs : Some ( 1 ) ,
0 commit comments