@@ -97,21 +97,23 @@ pub mod rpc {
9797 fn try_from ( value : crate :: query:: Params ) -> Result < Self , Self :: Error > {
9898 match value {
9999 crate :: query:: Params :: Named ( params) => {
100+ let config = bincode:: config:: legacy ( ) ;
100101 let iter = params. into_iter ( ) . map ( |( k, v) | -> Result < _ , SqldError > {
101102 let v = Value {
102- data : bincode:: serialize ( & v) ?,
103+ data : bincode:: serde :: encode_to_vec ( & v, config ) ?,
103104 } ;
104105 Ok ( ( k, v) )
105106 } ) ;
106107 let ( names, values) = itertools:: process_results ( iter, |i| i. unzip ( ) ) ?;
107108 Ok ( Self :: Named ( Named { names, values } ) )
108109 }
109110 crate :: query:: Params :: Positional ( params) => {
111+ let config = bincode:: config:: legacy ( ) ;
110112 let values = params
111113 . iter ( )
112114 . map ( |v| {
113115 Ok ( Value {
114- data : bincode:: serialize ( & v) ?,
116+ data : bincode:: serde :: encode_to_vec ( & v, config ) ?,
115117 } )
116118 } )
117119 . collect :: < Result < Vec < _ > , SqldError > > ( ) ?;
@@ -127,15 +129,23 @@ pub mod rpc {
127129 fn try_from ( value : query:: Params ) -> Result < Self , Self :: Error > {
128130 match value {
129131 query:: Params :: Positional ( pos) => {
132+ let config = bincode:: config:: legacy ( ) ;
130133 let params = pos
131134 . values
132135 . into_iter ( )
133- . map ( |v| bincode:: deserialize ( & v. data ) . map_err ( |e| e. into ( ) ) )
136+ . map ( |v| -> Result < crate :: query:: Value , SqldError > {
137+ let ( decoded, _) = bincode:: serde:: decode_from_slice ( & v. data , config) ?;
138+ Ok ( decoded)
139+ } )
134140 . collect :: < Result < Vec < _ > , SqldError > > ( ) ?;
135141 Ok ( Self :: Positional ( params) )
136142 }
137143 query:: Params :: Named ( named) => {
138- let values = named. values . iter ( ) . map ( |v| bincode:: deserialize ( & v. data ) ) ;
144+ let config = bincode:: config:: legacy ( ) ;
145+ let values = named. values . iter ( ) . map ( |v| -> Result < crate :: query:: Value , SqldError > {
146+ let ( decoded, _) = bincode:: serde:: decode_from_slice ( & v. data , config) ?;
147+ Ok ( decoded)
148+ } ) ;
139149 let params = itertools:: process_results ( values, |values| {
140150 named. names . into_iter ( ) . zip ( values) . collect ( )
141151 } ) ?;
@@ -455,8 +465,10 @@ impl QueryResultBuilder for ExecuteResultsBuilder {
455465 }
456466
457467 fn add_row_value ( & mut self , v : ValueRef ) -> Result < ( ) , QueryResultBuilderError > {
458- let data = bincode:: serialize (
468+ let config = bincode:: config:: legacy ( ) ;
469+ let data = bincode:: serde:: encode_to_vec (
459470 & crate :: query:: Value :: try_from ( v) . map_err ( QueryResultBuilderError :: from_any) ?,
471+ config,
460472 )
461473 . map_err ( QueryResultBuilderError :: from_any) ?;
462474
0 commit comments