Skip to content

Commit 217813f

Browse files
authored
Upgrade mysql_common to latest version (#31)
This updates mysql_common to 0.28.0 and adjusts code accordingly.
1 parent a388fea commit 217813f

File tree

7 files changed

+51
-10
lines changed

7 files changed

+51
-10
lines changed

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ maintenance = { status = "experimental" }
2424

2525
[dependencies]
2626
nom = "5"
27-
mysql_common = "0.22"
27+
mysql_common = { version = "0.28.0", features = ["chrono"] }
2828
byteorder = "1"
2929
chrono = "0.4"
3030
time = "0.2.25"

examples/psql_as_mysql.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ extern crate slab;
99

1010
use msql_srv::*;
1111
use mysql::prelude::*;
12+
use mysql::Opts;
1213
use slab::Slab;
1314

1415
use std::io;
@@ -29,7 +30,8 @@ fn main() {
2930
});
3031

3132
// we connect using MySQL bindings, but no MySQL server is running!
32-
let mut db = mysql::Conn::new(&format!("mysql://127.0.0.1:{}", port)).unwrap();
33+
let mut db =
34+
mysql::Conn::new(Opts::from_url(&format!("mysql://127.0.0.1:{}", port)).unwrap()).unwrap();
3335
assert_eq!(db.ping(), true);
3436
{
3537
let mut results = db

src/lib.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
//! # use std::thread;
2121
//! use msql_srv::*;
2222
//! use mysql::prelude::*;
23+
//! use mysql::Opts;
2324
//!
2425
//! struct Backend;
2526
//! impl<W: io::Write> MysqlShim<W> for Backend {
@@ -73,7 +74,7 @@
7374
//! }
7475
//! });
7576
//!
76-
//! let mut db = mysql::Conn::new(&format!("mysql://127.0.0.1:{}", port)).unwrap();
77+
//! let mut db = mysql::Conn::new(Opts::from_url(&format!("mysql://127.0.0.1:{}", port)).unwrap()).unwrap();
7778
//! assert_eq!(db.ping(), true);
7879
//! assert_eq!(db.query_iter("SELECT a, b FROM foo").unwrap().count(), 1);
7980
//! drop(db);

src/params.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
use crate::myc;
22
use crate::{StatementData, Value};
33
use std::collections::HashMap;
4+
use std::convert::TryFrom;
45

56
/// A `ParamParser` decodes query parameters included in a client's `EXECUTE` command given
67
/// type information for the expected parameters.
@@ -72,7 +73,10 @@ impl<'a> Iterator for Params<'a> {
7273
self.bound_types.clear();
7374
for i in 0..self.params as usize {
7475
self.bound_types.push((
75-
myc::constants::ColumnType::from(typmap[2 * i as usize]),
76+
myc::constants::ColumnType::try_from(typmap[2 * i as usize])
77+
.unwrap_or_else(|e| {
78+
panic!("bad column type 0x{:x}: {}", typmap[2 * i as usize], e)
79+
}),
7680
(typmap[2 * i as usize + 1] & 128) != 0,
7781
));
7882
}

src/value/decode.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,7 @@ mod tests {
286286
use crate::myc::io::WriteMysqlExt;
287287
use crate::{Column, ColumnFlags, ColumnType};
288288
use chrono::{self, TimeZone};
289+
use myc::proto::MySerialize;
289290
use std::time;
290291

291292
macro_rules! rt {
@@ -308,7 +309,7 @@ mod tests {
308309
}
309310

310311
let v: $t = $v;
311-
data.write_bin_value(&myc::value::Value::from(v)).unwrap();
312+
myc::value::Value::from(v).serialize(&mut data);
312313
assert_eq!(
313314
Into::<$t>::into(Value::parse_from(&mut &data[..], $ct, !$sig).unwrap()),
314315
v

src/value/encode.rs

Lines changed: 34 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
use crate::myc;
21
use crate::myc::constants::{ColumnFlags, ColumnType};
32
use crate::myc::io::WriteMysqlExt;
43
use crate::Column;
@@ -663,22 +662,34 @@ mod tests {
663662
use super::ToMysqlValue;
664663
use crate::myc::value;
665664
use crate::myc::value::convert::from_value;
665+
use crate::myc::value::Value;
666666
use crate::{Column, ColumnFlags, ColumnType};
667667
use chrono::{self, TimeZone};
668668
use std::time;
669669

670670
mod roundtrip_text {
671671
use super::*;
672672

673+
use myc::{
674+
io::ParseBuf,
675+
proto::MyDeserialize,
676+
value::{convert::FromValue, TextValue, ValueDeserializer},
677+
};
678+
673679
macro_rules! rt {
674680
($name:ident, $t:ty, $v:expr) => {
675681
#[test]
676682
fn $name() {
677683
let mut data = Vec::new();
678684
let v: $t = $v;
679685
v.to_mysql_text(&mut data).unwrap();
686+
let mut pb = ParseBuf(&mut data[..]);
680687
assert_eq!(
681-
from_value::<$t>(value::read_text_value(&mut &data[..]).unwrap()),
688+
<$t>::from_value(
689+
ValueDeserializer::<TextValue>::deserialize((), &mut pb)
690+
.unwrap()
691+
.0,
692+
),
682693
v
683694
);
684695
}
@@ -728,6 +739,12 @@ mod tests {
728739
mod roundtrip_bin {
729740
use super::*;
730741

742+
use myc::{
743+
io::ParseBuf,
744+
proto::MyDeserialize,
745+
value::{convert::FromValue, BinValue, ValueDeserializer},
746+
};
747+
731748
macro_rules! rt {
732749
($name:ident, $t:ty, $v:expr, $ct:expr) => {
733750
rt!($name, $t, $v, $ct, false);
@@ -749,9 +766,22 @@ mod tests {
749766

750767
let v: $t = $v;
751768
v.to_mysql_bin(&mut data, &col).unwrap();
769+
let mut pb = ParseBuf(&mut data[..]);
752770
assert_eq!(
753-
from_value::<$t>(
754-
value::read_bin_value(&mut &data[..], $ct, !$sig).unwrap()
771+
<$t>::from_value(
772+
ValueDeserializer::<BinValue>::deserialize(
773+
(
774+
$ct,
775+
if $sig {
776+
ColumnFlags::empty()
777+
} else {
778+
ColumnFlags::UNSIGNED_FLAG
779+
}
780+
),
781+
&mut pb
782+
)
783+
.unwrap()
784+
.0,
755785
),
756786
v
757787
);

tests/main.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ extern crate mysql_common as myc;
55
extern crate nom;
66

77
use mysql::prelude::*;
8+
use mysql::Opts;
89
use std::io;
910
use std::net;
1011
use std::thread;
@@ -106,7 +107,9 @@ where
106107
MysqlIntermediary::run_on_tcp(self, s)
107108
});
108109

109-
let mut db = mysql::Conn::new(&format!("mysql://127.0.0.1:{}", port)).unwrap();
110+
let mut db =
111+
mysql::Conn::new(Opts::from_url(&format!("mysql://127.0.0.1:{}", port)).unwrap())
112+
.unwrap();
110113
c(&mut db);
111114
drop(db);
112115
jh.join().unwrap().unwrap();

0 commit comments

Comments
 (0)