@@ -306,7 +306,7 @@ impl Persistence for PostgresPersistence {
306
306
update. id ,
307
307
& update. value ,
308
308
update. prev_ts ,
309
- ) ) ;
309
+ ) ? ) ;
310
310
}
311
311
let future = async {
312
312
let timer = metrics:: insert_document_chunk_timer ( ) ;
@@ -324,7 +324,7 @@ impl Persistence for PostgresPersistence {
324
324
update. id ,
325
325
& update. value ,
326
326
update. prev_ts ,
327
- ) ;
327
+ ) ? ;
328
328
let future = async {
329
329
let timer = metrics:: insert_one_document_timer ( ) ;
330
330
tx. execute_raw ( & insert_document, params) . await ?;
@@ -400,7 +400,10 @@ impl Persistence for PostgresPersistence {
400
400
. transact ( move |tx| {
401
401
async move {
402
402
let stmt = tx. prepare_cached ( WRITE_PERSISTENCE_GLOBAL ) . await ?;
403
- let params = [ Param :: PersistenceGlobalKey ( key) , Param :: JsonValue ( value) ] ;
403
+ let params = [
404
+ Param :: PersistenceGlobalKey ( key) ,
405
+ Param :: JsonValue ( value. to_string ( ) ) ,
406
+ ] ;
404
407
tx. execute_raw ( & stmt, params) . await ?;
405
408
Ok ( ( ) )
406
409
}
@@ -1206,13 +1209,13 @@ fn document_params(
1206
1209
id : InternalDocumentId ,
1207
1210
maybe_document : & Option < ResolvedDocument > ,
1208
1211
prev_ts : Option < Timestamp > ,
1209
- ) -> [ Param ; NUM_DOCUMENT_PARAMS ] {
1212
+ ) -> anyhow :: Result < [ Param ; NUM_DOCUMENT_PARAMS ] > {
1210
1213
let ( json_value, deleted) = match maybe_document {
1211
- Some ( doc) => ( doc. to_internal_json ( ) , false ) ,
1212
- None => ( JsonValue :: Null , true ) ,
1214
+ Some ( doc) => ( doc. value ( ) . json_serialize ( ) ? , false ) ,
1215
+ None => ( JsonValue :: Null . to_string ( ) , true ) ,
1213
1216
} ;
1214
1217
1215
- [
1218
+ Ok ( [
1216
1219
internal_doc_id_param ( id) ,
1217
1220
Param :: Ts ( i64:: from ( ts) ) ,
1218
1221
Param :: TableId ( id. table ( ) ) ,
@@ -1222,7 +1225,7 @@ fn document_params(
1222
1225
Some ( prev_ts) => Param :: Ts ( i64:: from ( prev_ts) ) ,
1223
1226
None => Param :: None ,
1224
1227
} ,
1225
- ]
1228
+ ] )
1226
1229
}
1227
1230
1228
1231
fn internal_id_param ( id : InternalId ) -> Param {
@@ -1270,7 +1273,7 @@ enum Param {
1270
1273
Ts ( i64 ) ,
1271
1274
Limit ( i64 ) ,
1272
1275
TableId ( TabletId ) ,
1273
- JsonValue ( JsonValue ) ,
1276
+ JsonValue ( String ) ,
1274
1277
Deleted ( bool ) ,
1275
1278
Bytes ( Vec < u8 > ) ,
1276
1279
PersistenceGlobalKey ( PersistenceGlobalKey ) ,
@@ -1288,7 +1291,7 @@ impl ToSql for Param {
1288
1291
Param :: None => Ok ( IsNull :: Yes ) ,
1289
1292
Param :: Ts ( ts) => ts. to_sql ( ty, out) ,
1290
1293
Param :: TableId ( s) => s. 0 . 0 . to_vec ( ) . to_sql ( ty, out) ,
1291
- Param :: JsonValue ( v) => serde_json :: to_vec ( v ) ? . to_sql ( ty, out) ,
1294
+ Param :: JsonValue ( v) => v . as_bytes ( ) . to_sql ( ty, out) ,
1292
1295
Param :: Deleted ( d) => d. to_sql ( ty, out) ,
1293
1296
Param :: Bytes ( v) => v. to_sql ( ty, out) ,
1294
1297
Param :: Limit ( v) => v. to_sql ( ty, out) ,
0 commit comments