Skip to content

Commit 153fb2d

Browse files
committed
fix test_query_timeout
1 parent 96577d4 commit 153fb2d

File tree

7 files changed

+27
-18
lines changed

7 files changed

+27
-18
lines changed

Cargo.toml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "clickhouse-rs"
3-
version = "0.1.15"
3+
version = "0.1.16"
44
authors = ["Mikhail Sukharev <suharev7@gmail.com>"]
55
license = "MIT"
66
homepage = "https://github.com/suharev7/clickhouse-rs"
@@ -14,8 +14,8 @@ edition = "2018"
1414
exclude = ["test/*"]
1515

1616
[dependencies]
17-
log = "0.4.6"
18-
futures = "0.1.28"
17+
log = "0.4.8"
18+
futures = "0.1.29"
1919
tokio = "0.1.22"
2020
tokio-timer = "0.2.11"
2121
hostname = "^0.1"
@@ -30,8 +30,8 @@ byteorder = "1.3.1"
3030
failure = "0.1"
3131
failure_derive = "0.1"
3232
url="^2"
33-
lazy_static = "1.3.0"
33+
lazy_static = "1.4.0"
3434

3535
[dev-dependencies]
36-
env_logger = "0.6.2"
37-
rand = "0.7.0"
36+
env_logger = "^0.7"
37+
rand = "^0.7"

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@ parameters:
5050
- `retry_timeout` - Amount of time to wait before next retry. (defaults to `5 sec`).
5151
- `ping_timeout` - Timeout for ping (defaults to `500 ms`).
5252

53+
- `query_timeout` - Timeout for queries (defaults to `180 sec`).
54+
- `query_block_timeout` - Timeout for each block in a query (defaults to `180 sec`).
55+
5356
example:
5457
```url
5558
tcp://user:password@host:9000/clicks?compression=lz4&ping_timeout=42ms

src/lib.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,9 @@
4444
//! - `retry_timeout` - Amount of time to wait before next retry. (defaults to `5 sec`).
4545
//! - `ping_timeout` - Timeout for ping (defaults to `500 ms`).
4646
//!
47+
//! - `query_timeout` - Timeout for queries (defaults to `180 sec`).
48+
//! - `query_block_timeout` - Timeout for each block in a query (defaults to `180 sec`).
49+
//!
4750
//! example:
4851
//! ```url
4952
//! tcp://user:password@host:9000/clicks?compression=lz4&ping_timeout=42ms

src/pool/mod.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -470,13 +470,12 @@ mod test {
470470

471471
#[test]
472472
fn test_query_timeout() {
473-
let test_db_url = format!("{}{}", DATABASE_URL.as_str(), "&query_timeout=5ms");
473+
let test_db_url = format!("{}{}", DATABASE_URL.as_str(), "&query_timeout=10ms");
474474
let pool = Pool::new(test_db_url.to_string());
475475

476476
let done = pool.get_handle()
477477
.and_then(|c| c.query("SELECT sleep(10)").fetch_all());
478478

479-
480479
run(done).unwrap_err();
481480

482481
let info = pool.info();

src/types/cmd.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use crate::{
2-
binary::{protocol, Encoder},
2+
binary::{Encoder, protocol},
33
client_info,
44
types::{Block, ClickhouseResult, Context, Query},
55
};

src/types/options.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ const DEFAULT_MIN_CONNS: usize = 10;
1919
const DEFAULT_MAX_CONNS: usize = 20;
2020

2121
#[derive(Debug)]
22+
#[allow(clippy::large_enum_variant)]
2223
enum State {
2324
Raw(Options),
2425
Url(String),
@@ -168,10 +169,10 @@ pub struct Options {
168169
/// Timeout for connection (defaults to `500 ms`)
169170
pub(crate) connection_timeout: Duration,
170171

171-
/// Timeout for queries (defaults to `180,000 ms`)
172+
/// Timeout for queries (defaults to `180 sec`)
172173
pub(crate) query_timeout: Duration,
173174

174-
/// Timeout for each block in a query (defaults to `180,000 ms`)
175+
/// Timeout for each block in a query (defaults to `180 sec`)
175176
pub(crate) query_block_timeout: Duration,
176177
}
177178

@@ -192,8 +193,8 @@ impl Default for Options {
192193
retry_timeout: Duration::from_secs(5),
193194
ping_timeout: Duration::from_millis(500),
194195
connection_timeout: Duration::from_millis(500),
195-
query_timeout: Duration::from_millis(180_000),
196-
query_block_timeout: Duration::from_millis(180_000),
196+
query_timeout: Duration::from_secs(180),
197+
query_block_timeout: Duration::from_secs(180),
197198
}
198199
}
199200
}

src/types/query_result/mod.rs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -76,16 +76,13 @@ impl QueryResult {
7676

7777
/// Fetch data from table. It returns a block that contains all rows.
7878
pub fn fetch_all(self) -> BoxFuture<(ClientHandle, Block)> {
79-
let timeout = try_opt!(self.client.context.options.get()).query_timeout;
80-
8179
wrap_future(
8280
self.fold_blocks(Vec::new(), |mut blocks, block| {
8381
if !block.is_empty() {
8482
blocks.push(block);
8583
}
8684
Ok(blocks)
8785
})
88-
.timeout(timeout)
8986
.map_err(Error::from)
9087
.map(|(h, blocks)| (h, Block::concat(blocks.as_slice())))
9188
)
@@ -99,6 +96,7 @@ impl QueryResult {
9996
Fut::Future: Send,
10097
T: Send + 'static,
10198
{
99+
let timeout = try_opt!(self.client.context.options.get()).query_timeout;
102100
let context = self.client.context.clone();
103101
let pool = self.client.pool.clone();
104102
let release_pool = self.client.pool.clone();
@@ -122,9 +120,10 @@ impl QueryResult {
122120
_ => Either::Right(future::err(Error::Driver(DriverError::UnexpectedPacket))),
123121
})
124122
.map(|(c, t)| (c.unwrap(), t))
123+
.timeout(timeout)
125124
.map_err(move |err| {
126125
release_pool.release_conn();
127-
err
126+
err.into()
128127
}),
129128
)
130129
}
@@ -187,6 +186,7 @@ impl QueryResult {
187186

188187
let context = c.context.clone();
189188
let pool = c.pool.clone();
189+
let release_pool = c.pool.clone();
190190

191191
BlockStream::new(
192192
c.inner
@@ -197,7 +197,10 @@ impl QueryResult {
197197
pool,
198198
)
199199
.timeout(timeout)
200-
.map_err(Error::from)
200+
.map_err(move |err| {
201+
release_pool.clone().release_conn();
202+
err.into()
203+
})
201204
})
202205
}
203206

0 commit comments

Comments
 (0)