Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
pola-rs
GitHub Repository: pola-rs/polars
Path: blob/main/crates/polars-sql/tests/functions_io.rs
6939 views
1
#[cfg(any(feature = "csv", feature = "ipc"))]
2
use polars_core::prelude::*;
3
#[cfg(any(feature = "csv", feature = "ipc"))]
4
use polars_lazy::prelude::*;
5
#[cfg(any(feature = "csv", feature = "ipc"))]
6
use polars_sql::*;
7
use polars_utils::plpath::PlPath;
8
9
#[test]
10
#[cfg(feature = "csv")]
11
fn read_csv_tbl_func() {
12
let mut context = SQLContext::new();
13
let sql = r#"
14
CREATE TABLE foods1 AS
15
SELECT *
16
FROM read_csv('../../examples/datasets/foods1.csv')"#;
17
let df_sql = context.execute(sql).unwrap().collect().unwrap();
18
let create_tbl_res = df! {
19
"Response" => ["CREATE TABLE"]
20
}
21
.unwrap();
22
assert!(df_sql.equals(&create_tbl_res));
23
let df_2 = context
24
.execute(r#"SELECT * FROM foods1"#)
25
.unwrap()
26
.collect()
27
.unwrap();
28
assert_eq!(df_2.height(), 27);
29
assert_eq!(df_2.width(), 4);
30
}
31
32
#[test]
33
#[cfg(feature = "csv")]
34
fn read_csv_tbl_func_inline() {
35
let mut context = SQLContext::new();
36
let sql = r#"
37
SELECT foods1.category
38
FROM read_csv('../../examples/datasets/foods1.csv') as foods1"#;
39
let df_sql = context.execute(sql).unwrap().collect().unwrap();
40
41
let expected = LazyCsvReader::new(PlPath::new("../../examples/datasets/foods1.csv"))
42
.finish()
43
.unwrap()
44
.select(&[col("category")])
45
.collect()
46
.unwrap();
47
assert!(df_sql.equals(&expected));
48
}
49
50
#[test]
51
#[cfg(feature = "csv")]
52
fn read_csv_tbl_func_inline_2() {
53
let mut context = SQLContext::new();
54
let sql = r#"
55
SELECT category
56
FROM read_csv('../../examples/datasets/foods1.csv')"#;
57
let df_sql = context.execute(sql).unwrap().collect().unwrap();
58
59
let expected = LazyCsvReader::new(PlPath::new("../../examples/datasets/foods1.csv"))
60
.finish()
61
.unwrap()
62
.select(&[col("category")])
63
.collect()
64
.unwrap();
65
assert!(df_sql.equals(&expected));
66
}
67
68
#[test]
69
#[cfg(feature = "parquet")]
70
fn read_parquet_tbl() {
71
let mut context = SQLContext::new();
72
let sql = r#"
73
CREATE TABLE foods1 AS
74
SELECT *
75
FROM read_parquet('../../examples/datasets/foods1.parquet')"#;
76
let df_sql = context.execute(sql).unwrap().collect().unwrap();
77
let create_tbl_res = df! {
78
"Response" => ["CREATE TABLE"]
79
}
80
.unwrap();
81
assert!(df_sql.equals(&create_tbl_res));
82
let df_2 = context
83
.execute(r#"SELECT * FROM foods1"#)
84
.unwrap()
85
.collect()
86
.unwrap();
87
assert_eq!(df_2.height(), 27);
88
assert_eq!(df_2.width(), 4);
89
}
90
91
#[test]
92
#[cfg(feature = "ipc")]
93
fn read_ipc_tbl() {
94
let mut context = SQLContext::new();
95
let sql = r#"
96
CREATE TABLE foods1 AS
97
SELECT *
98
FROM read_ipc('../../examples/datasets/foods1.ipc')"#;
99
let df_sql = context.execute(sql).unwrap().collect().unwrap();
100
let create_tbl_res = df! {
101
"Response" => ["CREATE TABLE"]
102
}
103
.unwrap();
104
assert!(df_sql.equals(&create_tbl_res));
105
let df_2 = context
106
.execute(r#"SELECT * FROM foods1"#)
107
.unwrap()
108
.collect()
109
.unwrap();
110
assert_eq!(df_2.height(), 27);
111
assert_eq!(df_2.width(), 4);
112
}
113
114