@@ -3,6 +3,7 @@ use scylla::{
3
3
value:: CqlTime ,
4
4
} ;
5
5
use std:: {
6
+ borrow:: Cow ,
6
7
net:: { IpAddr , Ipv4Addr } ,
7
8
str:: FromStr ,
8
9
} ;
@@ -33,6 +34,22 @@ pub fn tests_from_value_get_type(test: String) -> ComplexType {
33
34
"List" => ( CqlType :: List , Some ( CqlType :: Text ) , None ) ,
34
35
"Map" => ( CqlType :: Map , Some ( CqlType :: Ascii ) , Some ( CqlType :: Double ) ) ,
35
36
"Set" => ( CqlType :: Set , Some ( CqlType :: Int ) , None ) ,
37
+ "UserDefinedType" => {
38
+ return ComplexType :: from_udt (
39
+ & [
40
+ (
41
+ Cow :: Owned ( "field1" . to_owned ( ) ) ,
42
+ ColumnType :: Native ( NativeType :: Text ) ,
43
+ ) ,
44
+ (
45
+ Cow :: Owned ( "field2" . to_owned ( ) ) ,
46
+ ColumnType :: Native ( NativeType :: Int ) ,
47
+ ) ,
48
+ ] ,
49
+ "name" . to_owned ( ) ,
50
+ "keyspace" . to_owned ( ) ,
51
+ )
52
+ }
36
53
"SmallInt" => ( CqlType :: SmallInt , None , None ) ,
37
54
"TinyInt" => ( CqlType :: TinyInt , None , None ) ,
38
55
"Time" => ( CqlType :: Time , None , None ) ,
@@ -83,6 +100,14 @@ pub fn tests_from_value(test: String, value: &QueryParameterWrapper) {
83
100
( CqlValue :: Ascii ( "Text2" . to_owned( ) ) , CqlValue :: Double ( 0.2 ) ) ,
84
101
] ) ,
85
102
"Set" => CqlValue :: Set ( vec ! [ CqlValue :: Int ( 4 ) , CqlValue :: Int ( 7 ) , CqlValue :: Int ( 15 ) ] ) ,
103
+ "UserDefinedType" => CqlValue :: UserDefinedType {
104
+ keyspace : "keyspace" . to_owned ( ) ,
105
+ name : "name" . to_owned ( ) ,
106
+ fields : vec ! [
107
+ ( "field1" . to_owned( ) , Some ( CqlValue :: Text ( "Test" . to_owned( ) ) ) ) ,
108
+ ( "field2" . to_owned( ) , Some ( CqlValue :: Int ( 1 ) ) ) ,
109
+ ] ,
110
+ } ,
86
111
"SmallInt" => CqlValue :: SmallInt ( 1_i16 ) ,
87
112
"TinyInt" => CqlValue :: TinyInt ( -1_i8 ) ,
88
113
"Time" => CqlValue :: Time ( CqlTime ( 4312 ) ) ,
0 commit comments