Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit7d52522

Browse files
committed
expose sync rollback as a private api method
1 parent490c485 commit7d52522

File tree

3 files changed

+21
-28
lines changed

3 files changed

+21
-28
lines changed

‎tokio-postgres/src/client.rs‎

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
usecrate::codec::BackendMessages;
1+
usecrate::codec::{BackendMessages,FrontendMessage};
22
usecrate::config::{SslMode,SslNegotiation};
33
usecrate::connection::{Request,RequestMessages};
44
usecrate::copy_out::CopyOutStream;
@@ -22,6 +22,7 @@ use futures_channel::mpsc;
2222
use futures_util::{future, pin_mut, ready,StreamExt,TryStreamExt};
2323
use parking_lot::Mutex;
2424
use postgres_protocol::message::backend::Message;
25+
use postgres_protocol::message::frontend;
2526
use postgres_types::BorrowToSql;
2627
use std::collections::HashMap;
2728
use std::fmt;
@@ -605,6 +606,21 @@ impl Client {
605606
pubfn__private_api_close(&mutself){
606607
self.inner.sender.close_channel()
607608
}
609+
610+
#[doc(hidden)]
611+
pubfn__private_api_rollback(&self,name:Option<&str>){
612+
let buf =self.inner().with_buf(|buf|{
613+
ifletSome(name) = name{
614+
frontend::query(&format!("ROLLBACK TO {}", name), buf).unwrap();
615+
}else{
616+
frontend::query("ROLLBACK", buf).unwrap();
617+
}
618+
buf.split().freeze()
619+
});
620+
let _ =self
621+
.inner()
622+
.send(RequestMessages::Single(FrontendMessage::Raw(buf)));
623+
}
608624
}
609625

610626
impl fmt::DebugforClient{

‎tokio-postgres/src/transaction.rs‎

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
usecrate::codec::FrontendMessage;
2-
usecrate::connection::RequestMessages;
31
usecrate::copy_out::CopyOutStream;
42
usecrate::query::RowStream;
53
#[cfg(feature ="runtime")]
@@ -14,7 +12,6 @@ use crate::{
1412
};
1513
use bytes::Buf;
1614
use futures_util::TryStreamExt;
17-
use postgres_protocol::message::frontend;
1815
use tokio::io::{AsyncRead,AsyncWrite};
1916

2017
/// A representation of a PostgreSQL database transaction.
@@ -39,19 +36,8 @@ impl Drop for Transaction<'_> {
3936
return;
4037
}
4138

42-
let query =ifletSome(sp) =self.savepoint.as_ref(){
43-
format!("ROLLBACK TO {}", sp.name)
44-
}else{
45-
"ROLLBACK".to_string()
46-
};
47-
let buf =self.client.inner().with_buf(|buf|{
48-
frontend::query(&query, buf).unwrap();
49-
buf.split().freeze()
50-
});
51-
let _ =self
52-
.client
53-
.inner()
54-
.send(RequestMessages::Single(FrontendMessage::Raw(buf)));
39+
let name =self.savepoint.as_ref().map(|sp| sp.name.as_str());
40+
self.client.__private_api_rollback(name);
5541
}
5642
}
5743

‎tokio-postgres/src/transaction_builder.rs‎

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
use postgres_protocol::message::frontend;
2-
3-
usecrate::{codec::FrontendMessage, connection::RequestMessages,Client,Error,Transaction};
1+
usecrate::{Client,Error,Transaction};
42

53
/// The isolation level of a database transaction.
64
#[derive(Debug,Copy,Clone)]
@@ -119,14 +117,7 @@ impl<'a> TransactionBuilder<'a> {
119117
return;
120118
}
121119

122-
let buf =self.client.inner().with_buf(|buf|{
123-
frontend::query("ROLLBACK", buf).unwrap();
124-
buf.split().freeze()
125-
});
126-
let _ =self
127-
.client
128-
.inner()
129-
.send(RequestMessages::Single(FrontendMessage::Raw(buf)));
120+
self.client.__private_api_rollback(None);
130121
}
131122
}
132123

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp