Skip to content

Commit 86941d6

Browse files
authored
Reset query router setting to default (#32)
1 parent aceb2ac commit 86941d6

File tree

3 files changed

+12
-10
lines changed

3 files changed

+12
-10
lines changed

.circleci/config.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ jobs:
2525
- checkout
2626
- restore_cache:
2727
key: cargo-lock-2-{{ checksum "Cargo.lock" }}
28+
- run:
29+
name: "Lint"
30+
command: "cargo fmt --check"
2831
- run:
2932
name: "Install dependencies"
3033
command: "sudo apt-get update && sudo apt-get install -y psmisc postgresql-contrib-12 postgresql-client-12 ruby ruby-dev libpq-dev"

src/pool.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -167,10 +167,7 @@ impl ConnectionPool {
167167
};
168168

169169
if !exists {
170-
error!(
171-
"Requested role {:?}, but none are configured",
172-
role
173-
);
170+
error!("Requested role {:?}, but none are configured", role);
174171
return Err(Error::BadConfig);
175172
}
176173

src/query_router.rs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@ use crate::sharding::Sharder;
33
/// Route queries automatically based on explicitely requested
44
/// or implied query characteristics.
55
use bytes::{Buf, BytesMut};
6+
use log::{debug, error};
67
use once_cell::sync::OnceCell;
78
use regex::RegexSet;
89
use sqlparser::ast::Statement::{Query, StartTransaction};
910
use sqlparser::dialect::PostgreSqlDialect;
1011
use sqlparser::parser::Parser;
11-
use log::{error, debug};
1212

1313
const CUSTOM_SQL_REGEXES: [&str; 5] = [
1414
r"(?i)SET SHARDING KEY TO '[0-9]+'",
@@ -174,6 +174,7 @@ impl QueryRouter {
174174
"default" => {
175175
// TODO: reset query parser to default here.
176176
self.active_role = self.default_server_role;
177+
self.query_parser_enabled = get_config().query_router.query_parser_enabled;
177178
self.active_role
178179
}
179180

@@ -220,11 +221,7 @@ impl QueryRouter {
220221
let ast = match Parser::parse_sql(&PostgreSqlDialect {}, &query) {
221222
Ok(ast) => ast,
222223
Err(err) => {
223-
debug!(
224-
"{:?}, query: {}",
225-
err,
226-
query
227-
);
224+
debug!("{:?}, query: {}", err, query);
228225
return false;
229226
}
230227
};
@@ -483,5 +480,10 @@ mod test {
483480
let query = simple_query("SELECT * FROM test_table");
484481
assert_eq!(qr.infer_role(query), true);
485482
assert_eq!(qr.role(), Some(Role::Replica));
483+
484+
assert!(qr.query_parser_enabled());
485+
let query = simple_query("SET SERVER ROLE TO 'default'");
486+
assert!(qr.try_execute_command(query) != None);
487+
assert!(!qr.query_parser_enabled());
486488
}
487489
}

0 commit comments

Comments
 (0)