11use anyhow:: Result ;
2- use futures:: StreamExt as _;
3- use futures:: TryStreamExt as _;
4- use scylla:: frame:: response:: result:: Row ;
52use scylla:: transport:: session:: Session ;
63use scylla:: DeserializeRow ;
74use scylla:: QueryRowsResult ;
85use scylla:: SessionBuilder ;
9- use tracing_subscriber:: field:: display;
106use std:: env;
117
128#[ tokio:: main]
@@ -53,14 +49,6 @@ async fn main() -> Result<()> {
5349 . execute_unpaged ( & prepared, ( 44_i32 , "I'm prepared 3!" ) )
5450 . await ?;
5551
56- // Rows can be parsed as tuples
57- let mut iter = session
58- . query_iter ( "SELECT a, b, c FROM examples_ks.basic" , & [ ] )
59- . await ?
60- . rows_stream :: < ( i32 , i32 , String ) > ( ) ?;
61- while let Some ( ( a, b, c) ) = iter. try_next ( ) . await ? {
62- println ! ( "a, b, c: {}, {}, {}" , a, b, c) ;
63- }
6452
6553 // Or as custom structs that derive DeserializeRow
6654 #[ allow( unused) ]
@@ -80,5 +68,100 @@ async fn main() -> Result<()> {
8068 println ! ( "DISPLAYER:" ) ;
8169 println ! ( "{}" , displayer) ;
8270
71+
72+ // example 2
73+ session
74+ . query_unpaged (
75+ "CREATE TABLE IF NOT EXISTS examples_ks.basic4 (a int, b int, c text, d int, timest timestamp, bytes blob, fl float, db double, time1 time, primary key (a, c))" ,
76+ & [ ] ,
77+ )
78+ . await ?;
79+
80+ println ! ( "Created table examples_ks.basic2" ) ;
81+ session
82+ . query_unpaged (
83+ "INSERT INTO examples_ks.basic4
84+ (a, b, c, d, timest, bytes, fl, db, time1)
85+ VALUES
86+ (1, 10, 'example text', 3, toTimestamp(now()), textAsBlob('sample bytes'), 3.14, 2.718281, '14:30:00');" ,
87+ & [ ] ,
88+ )
89+ . await ?;
90+ println ! ( "insert1 done" ) ;
91+
92+ println ! ( "SELECT * FROM examples_ks.basic2" ) ;
93+
94+ let result2 : QueryRowsResult = session
95+ . query_unpaged ( "SELECT * FROM examples_ks.basic4" , & [ ] )
96+ . await ?
97+ . into_rows_result ( ) ?;
98+
99+ let displayer = result2. rows_displayer ( ) ;
100+ println ! ( "DISPLAYER:" ) ;
101+ println ! ( "{}" , displayer) ;
102+
103+ // example 3
104+
105+ session
106+ . query_unpaged (
107+ "CREATE TABLE IF NOT EXISTS examples_ks.basic6 (a int, timud timeuuid, date1 date, ipaddr inet, dur duration, primary key (a))" ,
108+ & [ ] ,
109+ )
110+ . await ?;
111+
112+ session
113+ . query_unpaged (
114+ "INSERT INTO examples_ks.basic6
115+ (a, timud, date1, ipaddr, dur)
116+ VALUES
117+ (1, now(), '2021-01-01', '3.14.15.9', 1h);" ,
118+ & [ ] ,
119+ )
120+ . await ?;
121+
122+ session
123+ . query_unpaged (
124+ "INSERT INTO examples_ks.basic6
125+ (a, timud, date1, ipaddr, dur)
126+ VALUES
127+ (3, NOW(), '2024-01-15', '128.0.0.1', 89h4m48s137ms);" , // cqlsh prints this as 89.08003805555556h4.8022833333333335m48.137s137.0ms
128+ & [ ] ,
129+ )
130+ . await ?;
131+
132+ session
133+ . query_unpaged (
134+ "INSERT INTO examples_ks.basic6
135+ (a, timud, date1, ipaddr, dur)
136+ VALUES
137+ (4, NOW(), '2024-01-15', '192.168.0.14', 13y2w89h4m48s137ms);" , // cqlsh prints this as 89.08003805555556h4.8022833333333335m48.137s137.0ms
138+ & [ ] ,
139+ )
140+ . await ?;
141+
142+ session
143+ . query_unpaged (
144+ "INSERT INTO examples_ks.basic6 (a, timud, date1, ipaddr, dur)
145+ VALUES (2, NOW(), '2024-02-20', '2001:0db8:0:0::1428:57ab', 5d2h);" ,
146+ & [ ] ,
147+ )
148+ . await ?;
149+
150+ session
151+ . query_unpaged (
152+ "INSERT INTO examples_ks.basic6 (a, timud, date1, ipaddr, dur)
153+ VALUES (5, NOW(), '-250000-02-20', '2001:db8::1428:57ab', 1y1mo1w1d1h1m1s700ms);" ,
154+ & [ ] ,
155+ )
156+ . await ?;
157+
158+ let result2 : QueryRowsResult = session
159+ . query_unpaged ( "SELECT * FROM examples_ks.basic6" , & [ ] )
160+ . await ?
161+ . into_rows_result ( ) ?;
162+
163+ let displayer = result2. rows_displayer ( ) ;
164+ println ! ( "DISPLAYER:" ) ;
165+ println ! ( "{}" , displayer) ;
83166 Ok ( ( ) )
84167}
0 commit comments