Skip to content

Commit 9580fc1

Browse files
committed
up
1 parent d98f2b1 commit 9580fc1

File tree

4 files changed

+129
-137
lines changed

4 files changed

+129
-137
lines changed

.github/workflows/validation-rust.yaml

+1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ name: Rust Validation
1616
env:
1717
# RUSTDOCFLAGS: -D warnings
1818
# RUSTFLAGS: -D warnings -C debuginfo=1
19+
RUST_BACKTRACE: 1
1920
CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse
2021

2122
jobs:

udf-examples/tests/lookup.rs

+42-41
Original file line numberDiff line numberDiff line change
@@ -3,61 +3,62 @@
33
mod backend;
44

55
use backend::get_db_connection;
6-
use diesel::dsl::sql;
7-
use diesel::prelude::*;
8-
use diesel::sql_types::{Nullable, Text, Untyped};
6+
use mysql::prelude::*;
97

10-
const SETUP: [&str; 1] = ["create or replace function lookup6
8+
const SETUP: &[&str] = &["create or replace function lookup6
119
returns string
1210
soname 'libudf_examples.so'"];
1311

14-
// #[test]
15-
// fn test_zeros() {
16-
// let conn = &mut get_db_connection(&SETUP);
12+
#[test]
13+
fn test_zeros() {
14+
let conn = &mut get_db_connection(&SETUP);
1715

18-
// let res: Option<String> = sql::<Nullable<Text>>("select lookup6('0.0.0.0')")
19-
// .get_result(conn)
20-
// .expect("bad result");
16+
let res: Option<String> = conn
17+
.query_first("select lookup6('0.0.0.0')")
18+
.unwrap()
19+
.unwrap();
2120

22-
// assert_eq!(res.unwrap(), "::ffff:0.0.0.0");
23-
// }
21+
assert_eq!(res.unwrap(), "::ffff:0.0.0.0");
22+
}
2423

25-
// #[test]
26-
// fn test_localhost() {
27-
// let conn = &mut get_db_connection(&SETUP);
24+
#[test]
25+
fn test_localhost() {
26+
let conn = &mut get_db_connection(&SETUP);
2827

29-
// let res: Option<String> = sql::<Nullable<Text>>("select lookup6('localhost')")
30-
// .get_result(conn)
31-
// .expect("bad result");
28+
let res: Option<String> = conn
29+
.query_first("select lookup6('localhost')")
30+
.unwrap()
31+
.unwrap();
3232

33-
// assert_eq!(res.unwrap(), "::1");
34-
// }
33+
assert_eq!(res.unwrap(), "::1");
34+
}
3535

36-
// #[test]
37-
// fn test_nonexistant() {
38-
// let conn = &mut get_db_connection(&SETUP);
36+
#[test]
37+
fn test_nonexistant() {
38+
let conn = &mut get_db_connection(&SETUP);
3939

40-
// let res: Option<String> = sql::<Nullable<Text>>("select lookup6('nonexistant')")
41-
// .get_result(conn)
42-
// .expect("bad result");
40+
let res: Option<String> = conn
41+
.query_first("select lookup6('nonexistant')")
42+
.unwrap()
43+
.unwrap();
4344

44-
// assert!(res.is_none());
45-
// }
45+
assert!(res.is_none());
46+
}
4647

47-
// #[test]
48-
// fn test_sql_buffer_bug() {
49-
// // This is intended to catch a buffer problem in mysql/mariadb
50-
// // See link: https://github.com/pluots/sql-udf/issues/39
48+
#[test]
49+
fn test_sql_buffer_bug() {
50+
// This is intended to catch a buffer problem in mysql/mariadb
51+
// See link: https://github.com/pluots/sql-udf/issues/39
5152

52-
// let conn = &mut get_db_connection(&SETUP);
53+
let conn = &mut get_db_connection(&SETUP);
5354

54-
// sql::<Untyped>("set @testval = (select lookup6('0.0.0.0'))")
55-
// .execute(conn)
56-
// .unwrap();
55+
conn.exec_drop("set @testval = (select lookup6('0.0.0.0'))", ())
56+
.unwrap();
5757

58-
// let res: Option<String> = sql::<Nullable<Text>>("select regexp_replace(@testval,'[:.]','')")
59-
// .get_result(conn)
60-
// .expect("bad result");
58+
let res: Option<String> = conn
59+
.query_first("select regexp_replace(@testval,'[:.]','')")
60+
.unwrap()
61+
.unwrap();
6162

62-
// assert_eq!(res.unwrap(), "ffff0000");
63-
// }
63+
assert_eq!(res.unwrap(), "ffff0000");
64+
}

udf-examples/tests/sequence.rs

+60-68
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@
33
mod backend;
44

55
use backend::get_db_connection;
6-
use diesel::dsl::sql;
7-
use diesel::prelude::*;
8-
use diesel::sql_types::Integer;
6+
use mysql::prelude::*;
97

108
const SETUP: &[&str] = &[
119
"create or replace function udf_sequence
@@ -17,68 +15,62 @@ const SETUP: &[&str] = &[
1715
"insert into test_seq (id) values (1), (2), (3), (4), (5), (6)",
1816
];
1917

20-
// #[test]
21-
// fn test_single() {
22-
// let conn = &mut get_db_connection(&SETUP);
23-
24-
// // First result should be 1
25-
// let res: i32 = sql::<Integer>("select udf_sequence()")
26-
// .get_result(conn)
27-
// .expect("bad result");
28-
29-
// assert_eq!(res, 1);
30-
// }
31-
32-
// #[test]
33-
// fn test_offset() {
34-
// let conn = &mut get_db_connection(&SETUP);
35-
36-
// // With argument specified, we should have one more than the
37-
// // specified value
38-
// let res: i32 = sql::<Integer>("select udf_sequence(4)")
39-
// .get_result(conn)
40-
// .expect("bad result");
41-
42-
// assert_eq!(res, 5);
43-
// }
44-
45-
// #[test]
46-
// fn test_incrementing() {
47-
// let conn = &mut get_db_connection(&SETUP);
48-
49-
// // Test results with multiple rows
50-
// let res: Vec<(i32, i32)> = sql::<(Integer, Integer)>("select id, udf_sequence() from test_seq")
51-
// .get_results(conn)
52-
// .expect("bad result");
53-
54-
// assert_eq!(res, vec![(1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6)]);
55-
// }
56-
57-
// #[test]
58-
// fn test_incrementing_offset() {
59-
// let conn = &mut get_db_connection(&SETUP);
60-
61-
// // Test results with multiple rows
62-
// let res: Vec<(i32, i32)> =
63-
// sql::<(Integer, Integer)>("select id, udf_sequence(10) from test_seq")
64-
// .get_results(conn)
65-
// .expect("bad result");
66-
67-
// assert_eq!(
68-
// res,
69-
// vec![(1, 11), (2, 12), (3, 13), (4, 14), (5, 15), (6, 16)]
70-
// );
71-
// }
72-
73-
// #[test]
74-
// fn test_incrementing_offset_negative() {
75-
// let conn = &mut get_db_connection(&SETUP);
76-
77-
// // Test results with multiple rows
78-
// let res: Vec<(i32, i32)> =
79-
// sql::<(Integer, Integer)>("select id, udf_sequence(-2) from test_seq")
80-
// .get_results(conn)
81-
// .expect("bad result");
82-
83-
// assert_eq!(res, vec![(1, -1), (2, 0), (3, 1), (4, 2), (5, 3), (6, 4)]);
84-
// }
18+
#[test]
19+
fn test_single() {
20+
let conn = &mut get_db_connection(&SETUP);
21+
22+
// First result should be 1
23+
let res: i32 = conn.query_first("select udf_sequence()").unwrap().unwrap();
24+
25+
assert_eq!(res, 1);
26+
}
27+
28+
#[test]
29+
fn test_offset() {
30+
let conn = &mut get_db_connection(&SETUP);
31+
32+
// With argument specified, we should have one more than the
33+
// specified value
34+
let res: i32 = conn.query_first("select udf_sequence(4)").unwrap().unwrap();
35+
36+
assert_eq!(res, 5);
37+
}
38+
39+
#[test]
40+
fn test_incrementing() {
41+
let conn = &mut get_db_connection(&SETUP);
42+
43+
// Test results with multiple rows
44+
let res: Vec<(i32, i32)> = conn
45+
.query("select id, udf_sequence() from test_seq")
46+
.unwrap();
47+
48+
assert_eq!(res, vec![(1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6)]);
49+
}
50+
51+
#[test]
52+
fn test_incrementing_offset() {
53+
let conn = &mut get_db_connection(&SETUP);
54+
55+
// Test results with multiple rows
56+
let res: Vec<(i32, i32)> = conn
57+
.query("select id, udf_sequence(10) from test_seq")
58+
.unwrap();
59+
60+
assert_eq!(
61+
res,
62+
vec![(1, 11), (2, 12), (3, 13), (4, 14), (5, 15), (6, 16)]
63+
);
64+
}
65+
66+
#[test]
67+
fn test_incrementing_offset_negative() {
68+
let conn = &mut get_db_connection(&SETUP);
69+
70+
// Test results with multiple rows
71+
let res: Vec<(i32, i32)> = conn
72+
.query("select id, udf_sequence(-2) from test_seq")
73+
.unwrap();
74+
75+
assert_eq!(res, vec![(1, -1), (2, 0), (3, 1), (4, 2), (5, 3), (6, 4)]);
76+
}

udf-examples/tests/sum_int.rs

+26-28
Original file line numberDiff line numberDiff line change
@@ -3,43 +3,41 @@
33
mod backend;
44

55
use backend::get_db_connection;
6-
use diesel::dsl::sql;
7-
use diesel::prelude::*;
8-
use diesel::sql_types::Integer;
6+
use mysql::prelude::*;
97

10-
const SETUP: [&str; 1] = ["create or replace function sum_int
8+
const SETUP: &[&str] = &["create or replace function sum_int
119
returns integer
1210
soname 'libudf_examples.so'"];
1311

14-
// #[test]
15-
// fn test_empty() {
16-
// let conn = &mut get_db_connection(&SETUP);
12+
#[test]
13+
fn test_empty() {
14+
let conn = &mut get_db_connection(&SETUP);
1715

18-
// let res: i32 = sql::<Integer>("select sum_int()")
19-
// .get_result(conn)
20-
// .expect("bad result");
16+
let res: i32 = conn.query_first("select sum_int()").unwrap().unwrap();
2117

22-
// assert_eq!(res, 0);
23-
// }
18+
assert_eq!(res, 0);
19+
}
2420

25-
// #[test]
26-
// fn test_basic() {
27-
// let conn = &mut get_db_connection(&SETUP);
21+
#[test]
22+
fn test_basic() {
23+
let conn = &mut get_db_connection(&SETUP);
2824

29-
// let res: i32 = sql::<Integer>("select sum_int(1, 2, 3, 4, -6)")
30-
// .get_result(conn)
31-
// .expect("bad result");
25+
let res: i32 = conn
26+
.query_first("select sum_int(1, 2, 3, 4, -6)")
27+
.unwrap()
28+
.unwrap();
3229

33-
// assert_eq!(res, 4);
34-
// }
30+
assert_eq!(res, 4);
31+
}
3532

36-
// #[test]
37-
// fn test_coercion() {
38-
// let conn = &mut get_db_connection(&SETUP);
33+
#[test]
34+
fn test_coercion() {
35+
let conn = &mut get_db_connection(&SETUP);
3936

40-
// let res: i32 = sql::<Integer>("select sum_int(1, 2, '-5', '11')")
41-
// .get_result(conn)
42-
// .expect("bad result");
37+
let res: i32 = conn
38+
.query_first("select sum_int(1, 2, '-5', '11')")
39+
.unwrap()
40+
.unwrap();
4341

44-
// assert_eq!(res, 9);
45-
// }
42+
assert_eq!(res, 9);
43+
}

0 commit comments

Comments
 (0)