gluesql_test_suite/data_type/
uint128.rs

1use {
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});