File tree Expand file tree Collapse file tree 2 files changed +27
-1
lines changed Expand file tree Collapse file tree 2 files changed +27
-1
lines changed Original file line number Diff line number Diff line change @@ -19,7 +19,7 @@ const Tuple = require("./tuple");
19
19
function getCqlObject ( field ) {
20
20
if ( field == null ) return null ;
21
21
let type = field . getType ( ) ;
22
- let res , fields ;
22
+ let res , fields , names ;
23
23
switch ( type ) {
24
24
case rust . CqlType . Ascii :
25
25
return field . getAscii ( ) ;
@@ -49,6 +49,13 @@ function getCqlObject(field) {
49
49
for ( let i = 0 ; i < fields . length ; i ++ )
50
50
res . push ( getCqlObject ( fields [ i ] ) ) ;
51
51
return res ;
52
+ case rust . CqlType . UserDefinedType :
53
+ fields = field . getUdtValues ( ) ;
54
+ names = field . getUdtNames ( ) ;
55
+ res = { } ;
56
+ for ( let i = 0 ; i < fields . length ; i ++ )
57
+ res [ names [ i ] ] = getCqlObject ( fields [ i ] ) ;
58
+ return res ;
52
59
case rust . CqlType . Text :
53
60
return field . getText ( ) ;
54
61
case rust . CqlType . Timestamp :
Original file line number Diff line number Diff line change @@ -395,6 +395,25 @@ impl CqlValueWrapper {
395
395
}
396
396
}
397
397
398
+ #[ napi]
399
+ pub fn get_udt_values ( & self ) -> napi:: Result < Vec < Option < CqlValueWrapper > > > {
400
+ match self . inner . as_udt ( ) {
401
+ Some ( r) => Ok ( r
402
+ . iter ( )
403
+ . map ( |f| f. 1 . clone ( ) . map ( |f| CqlValueWrapper { inner : f } ) )
404
+ . collect ( ) ) ,
405
+ None => Err ( Self :: generic_error ( "user_defined_type" ) ) ,
406
+ }
407
+ }
408
+
409
+ #[ napi]
410
+ pub fn get_udt_names ( & self ) -> napi:: Result < Vec < String > > {
411
+ match self . inner . as_udt ( ) {
412
+ Some ( r) => Ok ( r. iter ( ) . map ( |f| f. 0 . clone ( ) ) . collect ( ) ) ,
413
+ None => Err ( Self :: generic_error ( "user_defined_type" ) ) ,
414
+ }
415
+ }
416
+
398
417
#[ napi]
399
418
pub fn get_small_int ( & self ) -> napi:: Result < i16 > {
400
419
match self . inner . as_smallint ( ) {
You can’t perform that action at this time.
0 commit comments