gluesql_test_suite/data_type/
uint128.rs1use {
2 crate::*,
3 gluesql_core::{error::ValueError, prelude::Value::*},
4};
5
6test_case!(uint128, {
7 let g = get_tester!();
8
9 g.run(
10 "CREATE TABLE Item (
11 field_one UINT128,
12 field_two UINT128
13 );",
14 )
15 .await;
16 g.run(r#"INSERT INTO Item VALUES (1, 1), (2, 2), (3, 3), (4, 4);"#)
17 .await;
18
19 g.test(
20 "INSERT INTO Item VALUES (340282366920938463463374607431768211456,340282366920938463463374607431768211456);",
21 Err(ValueError::FailedToParseNumber.into())
22 ).await;
23
24 g.test(
25 "INSERT INTO Item VALUES (-32769, -32769);",
26 Err(ValueError::FailedToParseNumber.into()),
27 )
28 .await;
29 g.test(
30 "SELECT field_one, field_two FROM Item",
31 Ok(select!(
32 field_one | field_two
33 U128 | U128;
34 1 1;
35 2 2;
36 3 3;
37 4 4
38 )),
39 )
40 .await;
41 g.test(
42 "SELECT field_one FROM Item WHERE field_one > 0",
43 Ok(select!(field_one U128; 1; 2;3;4)),
44 )
45 .await;
46 g.test(
47 "SELECT field_one FROM Item WHERE field_one >= 0",
48 Ok(select!(field_one U128; 1; 2;3;4)),
49 )
50 .await;
51 g.test(
52 "SELECT field_one FROM Item WHERE field_one = 2",
53 Ok(select!(field_one U128; 2)),
54 )
55 .await;
56});