Skip to content

Commit 7547dbc

Browse files
authored
Merge pull request jonhoo#14 from datafuse-extras/bump-deps
Bump deps
2 parents 077fbca + 9ffce67 commit 7547dbc

File tree

5 files changed

+43
-152
lines changed

5 files changed

+43
-152
lines changed

Cargo.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,13 @@ codecov = { repository = "jonhoo/msql-srv", branch = "master", service = "github
2323
maintenance = { status = "experimental" }
2424

2525
[dependencies]
26-
nom = "7.0.0-alpha2"
27-
mysql_common = "0.27"
26+
nom = "7.1.0"
27+
mysql_common = { version = "0.28.0", features = ["chrono"] }
2828
byteorder = "1.4"
2929
chrono = "0.4"
3030

3131
[dev-dependencies]
32-
mysql = "21"
32+
mysql = "22"
3333
postgres = "0.19.1"
3434
mysql_async = "0.20.0"
3535
slab = "0.4.3"

src/value/decode.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,7 @@ mod tests {
285285
use crate::value::utils::tests::WriteMysqlExt;
286286
use crate::{Column, ColumnFlags, ColumnType};
287287
use chrono::{self, TimeZone};
288+
use myc::proto::MySerialize;
288289
use std::time;
289290

290291
macro_rules! rt {
@@ -307,7 +308,7 @@ mod tests {
307308
}
308309

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

src/value/encode.rs

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -663,6 +663,7 @@ mod tests {
663663
use super::ToMysqlValue;
664664
use crate::myc::value;
665665
use crate::myc::value::convert::from_value;
666+
use crate::myc::value::Value;
666667
use crate::value::utils::tests::*;
667668
use crate::{Column, ColumnFlags, ColumnType};
668669
use chrono::{self, TimeZone};
@@ -671,15 +672,26 @@ mod tests {
671672
mod roundtrip_text {
672673
use super::*;
673674

675+
use myc::{
676+
io::ParseBuf,
677+
proto::MyDeserialize,
678+
value::{convert::FromValue, TextValue, ValueDeserializer},
679+
};
680+
674681
macro_rules! rt {
675682
($name:ident, $t:ty, $v:expr) => {
676683
#[test]
677684
fn $name() {
678685
let mut data = Vec::new();
679686
let v: $t = $v;
680687
v.to_mysql_text(&mut data).unwrap();
688+
let mut pb = ParseBuf(&mut data[..]);
681689
assert_eq!(
682-
from_value::<$t>(read_text_value(&mut &data[..]).unwrap()),
690+
<$t>::from_value(
691+
ValueDeserializer::<TextValue>::deserialize((), &mut pb)
692+
.unwrap()
693+
.0,
694+
),
683695
v
684696
);
685697
}
@@ -729,6 +741,12 @@ mod tests {
729741
mod roundtrip_bin {
730742
use super::*;
731743

744+
use myc::{
745+
io::ParseBuf,
746+
proto::MyDeserialize,
747+
value::{convert::FromValue, BinValue, ValueDeserializer},
748+
};
749+
732750
macro_rules! rt {
733751
($name:ident, $t:ty, $v:expr, $ct:expr) => {
734752
rt!($name, $t, $v, $ct, false);
@@ -750,8 +768,23 @@ mod tests {
750768

751769
let v: $t = $v;
752770
v.to_mysql_bin(&mut data, &col).unwrap();
771+
let mut pb = ParseBuf(&mut data[..]);
753772
assert_eq!(
754-
from_value::<$t>(read_bin_value(&mut &data[..], $ct, !$sig).unwrap()),
773+
<$t>::from_value(
774+
ValueDeserializer::<BinValue>::deserialize(
775+
(
776+
$ct,
777+
if $sig {
778+
ColumnFlags::empty()
779+
} else {
780+
ColumnFlags::UNSIGNED_FLAG
781+
}
782+
),
783+
&mut pb
784+
)
785+
.unwrap()
786+
.0,
787+
),
755788
v
756789
);
757790
}

src/value/utils.rs

Lines changed: 0 additions & 143 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,6 @@
11
#[cfg(test)]
22
#[allow(unused_imports)]
33
pub mod tests {
4-
/// Non panicking Slice::split_at
5-
macro_rules! split_at_or_err {
6-
($reader:expr, $at:expr, $msg:expr) => {
7-
if $reader.len() >= $at {
8-
Ok($reader.split_at($at))
9-
} else {
10-
Err(io::Error::new(io::ErrorKind::UnexpectedEof, $msg))
11-
}
12-
};
13-
}
14-
154
/// Reads MySql's length-encoded string
165
#[macro_export]
176
macro_rules! read_lenenc_str {
@@ -119,136 +108,4 @@ pub mod tests {
119108
}
120109

121110
impl<T> WriteMysqlExt for T where T: WriteBytesExt {}
122-
123-
/// Reads value in binary format.
124-
pub fn read_bin_value(
125-
input: &mut &[u8],
126-
column_type: ColumnType,
127-
unsigned: bool,
128-
) -> io::Result<Value> {
129-
read_bin(input, column_type, unsigned)
130-
}
131-
132-
/// Reads value in text format.
133-
pub fn read_text_value(input: &mut &[u8]) -> io::Result<Value> {
134-
read_text(input)
135-
}
136-
137-
fn read_text(input: &mut &[u8]) -> io::Result<Value> {
138-
if input.is_empty() {
139-
Err(io::Error::new(
140-
io::ErrorKind::UnexpectedEof,
141-
"Unexpected EOF while reading Value",
142-
))
143-
} else if input[0] == 0xfb {
144-
let _ = input.read_u8();
145-
Ok(Value::NULL)
146-
} else {
147-
Ok(Value::Bytes(read_lenenc_str!(input)?.into()))
148-
}
149-
}
150-
151-
fn read_bin(input: &mut &[u8], column_type: ColumnType, unsigned: bool) -> io::Result<Value> {
152-
match column_type {
153-
ColumnType::MYSQL_TYPE_STRING
154-
| ColumnType::MYSQL_TYPE_VAR_STRING
155-
| ColumnType::MYSQL_TYPE_BLOB
156-
| ColumnType::MYSQL_TYPE_TINY_BLOB
157-
| ColumnType::MYSQL_TYPE_MEDIUM_BLOB
158-
| ColumnType::MYSQL_TYPE_LONG_BLOB
159-
| ColumnType::MYSQL_TYPE_SET
160-
| ColumnType::MYSQL_TYPE_ENUM
161-
| ColumnType::MYSQL_TYPE_DECIMAL
162-
| ColumnType::MYSQL_TYPE_VARCHAR
163-
| ColumnType::MYSQL_TYPE_BIT
164-
| ColumnType::MYSQL_TYPE_NEWDECIMAL
165-
| ColumnType::MYSQL_TYPE_GEOMETRY
166-
| ColumnType::MYSQL_TYPE_JSON => Ok(Bytes(read_lenenc_str!(input)?.into())),
167-
ColumnType::MYSQL_TYPE_TINY => {
168-
if unsigned {
169-
Ok(Int(input.read_u8()?.into()))
170-
} else {
171-
Ok(Int(input.read_i8()?.into()))
172-
}
173-
}
174-
ColumnType::MYSQL_TYPE_SHORT | ColumnType::MYSQL_TYPE_YEAR => {
175-
if unsigned {
176-
Ok(Int(input.read_u16::<LE>()?.into()))
177-
} else {
178-
Ok(Int(input.read_i16::<LE>()?.into()))
179-
}
180-
}
181-
ColumnType::MYSQL_TYPE_LONG | ColumnType::MYSQL_TYPE_INT24 => {
182-
if unsigned {
183-
Ok(Int(input.read_u32::<LE>()?.into()))
184-
} else {
185-
Ok(Int(input.read_i32::<LE>()?.into()))
186-
}
187-
}
188-
ColumnType::MYSQL_TYPE_LONGLONG => {
189-
if unsigned {
190-
Ok(UInt(input.read_u64::<LE>()?))
191-
} else {
192-
Ok(Int(input.read_i64::<LE>()?))
193-
}
194-
}
195-
ColumnType::MYSQL_TYPE_FLOAT => Ok(Float(input.read_f32::<LE>()?)),
196-
ColumnType::MYSQL_TYPE_DOUBLE => Ok(Double(input.read_f64::<LE>()?)),
197-
ColumnType::MYSQL_TYPE_TIMESTAMP
198-
| ColumnType::MYSQL_TYPE_DATE
199-
| ColumnType::MYSQL_TYPE_DATETIME => {
200-
let len = input.read_u8()?;
201-
let mut year = 0u16;
202-
let mut month = 0u8;
203-
let mut day = 0u8;
204-
let mut hour = 0u8;
205-
let mut minute = 0u8;
206-
let mut second = 0u8;
207-
let mut micro_second = 0u32;
208-
if len >= 4u8 {
209-
year = input.read_u16::<LE>()?;
210-
month = input.read_u8()?;
211-
day = input.read_u8()?;
212-
}
213-
if len >= 7u8 {
214-
hour = input.read_u8()?;
215-
minute = input.read_u8()?;
216-
second = input.read_u8()?;
217-
}
218-
if len == 11u8 {
219-
micro_second = input.read_u32::<LE>()?;
220-
}
221-
Ok(Date(year, month, day, hour, minute, second, micro_second))
222-
}
223-
ColumnType::MYSQL_TYPE_TIME => {
224-
let len = input.read_u8()?;
225-
let mut is_negative = false;
226-
let mut days = 0u32;
227-
let mut hours = 0u8;
228-
let mut minutes = 0u8;
229-
let mut seconds = 0u8;
230-
let mut micro_seconds = 0u32;
231-
if len >= 8u8 {
232-
is_negative = input.read_u8()? == 1u8;
233-
days = input.read_u32::<LE>()?;
234-
hours = input.read_u8()?;
235-
minutes = input.read_u8()?;
236-
seconds = input.read_u8()?;
237-
}
238-
if len == 12u8 {
239-
micro_seconds = input.read_u32::<LE>()?;
240-
}
241-
Ok(Time(
242-
is_negative,
243-
days,
244-
hours,
245-
minutes,
246-
seconds,
247-
micro_seconds,
248-
))
249-
}
250-
ColumnType::MYSQL_TYPE_NULL => Ok(NULL),
251-
x => unimplemented!("Unsupported column type {:?}", x),
252-
}
253-
}
254111
}

tests/main.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -410,21 +410,21 @@ fn multi_result() {
410410
let mut result = db
411411
.query_iter("SELECT a FROM foo; SELECT a FROM foo")
412412
.unwrap();
413-
let mut set = result.next_set().unwrap().unwrap();
413+
let mut set = result.iter().unwrap();
414414
let row1: Vec<_> = set
415415
.by_ref()
416416
.filter_map(|row| row.unwrap().get::<i16, _>(0))
417417
.collect();
418418
assert_eq!(row1, vec![1024]);
419419
drop(set);
420-
let mut set = result.next_set().unwrap().unwrap();
420+
let mut set = result.iter().unwrap();
421421
let row2: Vec<_> = set
422422
.by_ref()
423423
.filter_map(|row| row.unwrap().get::<i16, _>(0))
424424
.collect();
425425
assert_eq!(row2, vec![1025]);
426426
drop(set);
427-
assert!(result.next_set().is_none());
427+
assert!(result.iter().is_none());
428428
})
429429
}
430430

0 commit comments

Comments
 (0)