gluesql_test_suite/ast_builder/
values.rs1use {
2 crate::*,
3 gluesql_core::{ast_builder::*, prelude::Value::*},
4};
5
6test_case!(values, {
7 use gluesql_core::ast_builder::values;
8 let glue = get_glue!();
9
10 let actual = values(vec!["1, 'Glue'", "2, 'SQL'", "3, 'Rust'"])
11 .execute(glue)
12 .await;
13 let expected = Ok(select!(
14 column1 | column2
15 I64 | Str;
16 1 "Glue".to_owned();
17 2 "SQL".to_owned();
18 3 "Rust".to_owned()
19
20 ));
21 assert_eq!(actual, expected, "values - row as string");
22
23 let actual = values(vec![
24 vec!["1", "'Glue'"],
25 vec!["2", "'SQL'"],
26 vec!["3", "'Rust'"],
27 ])
28 .execute(glue)
29 .await;
30 let expected = Ok(select!(
31 column1 | column2
32 I64 | Str;
33 1 "Glue".to_owned();
34 2 "SQL".to_owned();
35 3 "Rust".to_owned()
36
37 ));
38 assert_eq!(actual, expected, "values - row as vec");
39
40 let actual = values(vec!["1, 'Glue'", "2, 'SQL'", "3, 'Rust'"])
41 .order_by("column2 desc")
42 .execute(glue)
43 .await;
44 let expected = Ok(select!(
45 column1 | column2
46 I64 | Str;
47 2 "SQL".to_owned();
48 3 "Rust".to_owned();
49 1 "Glue".to_owned()
50 ));
51 assert_eq!(actual, expected, "values - order by");
52
53 let actual = values(vec!["1, 'Glue'", "2, 'SQL'", "3, 'Rust'"])
54 .offset(1)
55 .execute(glue)
56 .await;
57 let expected = Ok(select!(
58 column1 | column2
59 I64 | Str;
60 2 "SQL".to_owned();
61 3 "Rust".to_owned()
62 ));
63 assert_eq!(actual, expected, "values - offset");
64
65 let actual = values(vec!["1, 'Glue'", "2, 'SQL'", "3, 'Rust'"])
66 .limit(2)
67 .execute(glue)
68 .await;
69 let expected = Ok(select!(
70 column1 | column2
71 I64 | Str;
72 1 "Glue".to_owned();
73 2 "SQL".to_owned()
74 ));
75 assert_eq!(actual, expected, "values - limit");
76
77 let actual = values(vec!["1, 'Glue'", "2, 'SQL'", "3, 'Rust'"])
78 .alias_as("Sub")
79 .select()
80 .project("column1 AS id")
81 .project("column2 AS name")
82 .execute(glue)
83 .await;
84 let expected = Ok(select!(
85 id | name
86 I64 | Str;
87 1 "Glue".to_owned();
88 2 "SQL".to_owned();
89 3 "Rust".to_owned()
90 ));
91 assert_eq!(actual, expected, "values - alias as");
92});