@@ -196,8 +196,7 @@ describe("binary", (t) => {
196
196
) ;
197
197
198
198
const originalField = TEST_TABLE . schema . fields [ columnIndex ] ;
199
- // declare it's not null
200
- const originalVector = TEST_TABLE . getChildAt ( columnIndex ) as arrow . Vector ;
199
+ const originalVector = TEST_TABLE . getChildAt ( columnIndex ) ! ;
201
200
const fieldPtr = FFI_TABLE . schemaAddr ( columnIndex ) ;
202
201
const field = parseField ( WASM_MEMORY . buffer , fieldPtr ) ;
203
202
@@ -277,8 +276,7 @@ describe("string", (t) => {
277
276
) ;
278
277
279
278
const originalField = TEST_TABLE . schema . fields [ columnIndex ] ;
280
- // declare it's not null
281
- const originalVector = TEST_TABLE . getChildAt ( columnIndex ) as arrow . Vector ;
279
+ const originalVector = TEST_TABLE . getChildAt ( columnIndex ) ! ;
282
280
const fieldPtr = FFI_TABLE . schemaAddr ( columnIndex ) ;
283
281
const field = parseField ( WASM_MEMORY . buffer , fieldPtr ) ;
284
282
@@ -346,8 +344,7 @@ describe("boolean", (t) => {
346
344
) ;
347
345
348
346
const originalField = TEST_TABLE . schema . fields [ columnIndex ] ;
349
- // declare it's not null
350
- const originalVector = TEST_TABLE . getChildAt ( columnIndex ) as arrow . Vector ;
347
+ const originalVector = TEST_TABLE . getChildAt ( columnIndex ) ! ;
351
348
const fieldPtr = FFI_TABLE . schemaAddr ( columnIndex ) ;
352
349
const field = parseField ( WASM_MEMORY . buffer , fieldPtr ) ;
353
350
@@ -379,8 +376,7 @@ describe("null array", (t) => {
379
376
) ;
380
377
381
378
const originalField = TEST_TABLE . schema . fields [ columnIndex ] ;
382
- // declare it's not null
383
- const originalVector = TEST_TABLE . getChildAt ( columnIndex ) as arrow . Vector ;
379
+ const originalVector = TEST_TABLE . getChildAt ( columnIndex ) ! ;
384
380
const fieldPtr = FFI_TABLE . schemaAddr ( columnIndex ) ;
385
381
const field = parseField ( WASM_MEMORY . buffer , fieldPtr ) ;
386
382
@@ -412,8 +408,7 @@ describe("list array", (t) => {
412
408
) ;
413
409
414
410
const originalField = TEST_TABLE . schema . fields [ columnIndex ] ;
415
- // declare it's not null
416
- const originalVector = TEST_TABLE . getChildAt ( columnIndex ) as arrow . Vector ;
411
+ const originalVector = TEST_TABLE . getChildAt ( columnIndex ) ! ;
417
412
const fieldPtr = FFI_TABLE . schemaAddr ( columnIndex ) ;
418
413
const field = parseField ( WASM_MEMORY . buffer , fieldPtr ) ;
419
414
@@ -499,8 +494,7 @@ describe("extension array", (t) => {
499
494
) ;
500
495
501
496
const originalField = TEST_TABLE . schema . fields [ columnIndex ] ;
502
- // declare it's not null
503
- const originalVector = TEST_TABLE . getChildAt ( columnIndex ) as arrow . Vector ;
497
+ const originalVector = TEST_TABLE . getChildAt ( columnIndex ) ! ;
504
498
const fieldPtr = FFI_TABLE . schemaAddr ( columnIndex ) ;
505
499
const field = parseField ( WASM_MEMORY . buffer , fieldPtr ) ;
506
500
@@ -544,8 +538,7 @@ describe("extension array", (t) => {
544
538
// );
545
539
546
540
// const originalField = TEST_TABLE.schema.fields[columnIndex];
547
- // // declare it's not null
548
- // const originalVector = TEST_TABLE.getChildAt(columnIndex) as arrow.Vector;
541
+ // const originalVector = TEST_TABLE.getChildAt(columnIndex)!;
549
542
// const fieldPtr = FFI_TABLE.schemaAddr(columnIndex);
550
543
// const field = parseField(WASM_MEMORY.buffer, fieldPtr);
551
544
@@ -572,8 +565,7 @@ describe("date32", (t) => {
572
565
) ;
573
566
574
567
const originalField = TEST_TABLE . schema . fields [ columnIndex ] ;
575
- // declare it's not null
576
- const originalVector = TEST_TABLE . getChildAt ( columnIndex ) as arrow . Vector ;
568
+ const originalVector = TEST_TABLE . getChildAt ( columnIndex ) ! ;
577
569
const fieldPtr = FFI_TABLE . schemaAddr ( columnIndex ) ;
578
570
const field = parseField ( WASM_MEMORY . buffer , fieldPtr ) ;
579
571
@@ -606,8 +598,7 @@ describe("date32", (t) => {
606
598
// );
607
599
608
600
// const originalField = TEST_TABLE.schema.fields[columnIndex];
609
- // // declare it's not null
610
- // const originalVector = TEST_TABLE.getChildAt(columnIndex) as arrow.Vector;
601
+ // const originalVector = TEST_TABLE.getChildAt(columnIndex)!;
611
602
// const fieldPtr = FFI_TABLE.schemaAddr(columnIndex);
612
603
// const field = parseField(WASM_MEMORY.buffer, fieldPtr);
613
604
@@ -634,8 +625,7 @@ describe("duration", (t) => {
634
625
) ;
635
626
636
627
const originalField = TEST_TABLE . schema . fields [ columnIndex ] ;
637
- // declare it's not null
638
- const originalVector = TEST_TABLE . getChildAt ( columnIndex ) as arrow . Vector ;
628
+ const originalVector = TEST_TABLE . getChildAt ( columnIndex ) ! ;
639
629
const fieldPtr = FFI_TABLE . schemaAddr ( columnIndex ) ;
640
630
const field = parseField ( WASM_MEMORY . buffer , fieldPtr ) ;
641
631
@@ -667,8 +657,7 @@ describe("nullable int", (t) => {
667
657
) ;
668
658
669
659
const originalField = TEST_TABLE . schema . fields [ columnIndex ] ;
670
- // declare it's not null
671
- const originalVector = TEST_TABLE . getChildAt ( columnIndex ) as arrow . Vector ;
660
+ const originalVector = TEST_TABLE . getChildAt ( columnIndex ) ! ;
672
661
const fieldPtr = FFI_TABLE . schemaAddr ( columnIndex ) ;
673
662
const field = parseField ( WASM_MEMORY . buffer , fieldPtr ) ;
674
663
@@ -693,3 +682,67 @@ describe("nullable int", (t) => {
693
682
it ( "copy=false" , ( ) => test ( false ) ) ;
694
683
it ( "copy=true" , ( ) => test ( true ) ) ;
695
684
} ) ;
685
+
686
+ describe ( "dictionary encoded string" , ( t ) => {
687
+ function test ( copy : boolean ) {
688
+ let columnIndex = TEST_TABLE . schema . fields . findIndex (
689
+ ( field ) => field . name == "dictionary_encoded_string"
690
+ ) ;
691
+
692
+ const originalField = TEST_TABLE . schema . fields [ columnIndex ] ;
693
+ const originalVector = TEST_TABLE . getChildAt ( columnIndex ) ! ;
694
+ const fieldPtr = FFI_TABLE . schemaAddr ( columnIndex ) ;
695
+ const field = parseField ( WASM_MEMORY . buffer , fieldPtr ) ;
696
+
697
+ expect ( field . name ) . toStrictEqual ( originalField . name ) ;
698
+ expect ( field . typeId ) . toStrictEqual ( originalField . typeId ) ;
699
+ expect ( field . nullable ) . toStrictEqual ( originalField . nullable ) ;
700
+
701
+ const arrayPtr = FFI_TABLE . arrayAddr ( 0 , columnIndex ) ;
702
+ const wasmVector = parseVector (
703
+ WASM_MEMORY . buffer ,
704
+ arrayPtr ,
705
+ field . type ,
706
+ copy
707
+ ) ;
708
+
709
+ for ( let i = 0 ; i < 3 ; i ++ ) {
710
+ expect ( originalVector . get ( i ) ) . toStrictEqual ( wasmVector . get ( i ) ) ;
711
+ }
712
+ }
713
+
714
+ it ( "copy=false" , ( ) => test ( false ) ) ;
715
+ it ( "copy=true" , ( ) => test ( true ) ) ;
716
+ } ) ;
717
+
718
+ describe ( "dictionary encoded string (with nulls)" , ( t ) => {
719
+ function test ( copy : boolean ) {
720
+ let columnIndex = TEST_TABLE . schema . fields . findIndex (
721
+ ( field ) => field . name == "dictionary_encoded_string_null"
722
+ ) ;
723
+
724
+ const originalField = TEST_TABLE . schema . fields [ columnIndex ] ;
725
+ const originalVector = TEST_TABLE . getChildAt ( columnIndex ) ! ;
726
+ const fieldPtr = FFI_TABLE . schemaAddr ( columnIndex ) ;
727
+ const field = parseField ( WASM_MEMORY . buffer , fieldPtr ) ;
728
+
729
+ expect ( field . name ) . toStrictEqual ( originalField . name ) ;
730
+ expect ( field . typeId ) . toStrictEqual ( originalField . typeId ) ;
731
+ expect ( field . nullable ) . toStrictEqual ( originalField . nullable ) ;
732
+
733
+ const arrayPtr = FFI_TABLE . arrayAddr ( 0 , columnIndex ) ;
734
+ const wasmVector = parseVector (
735
+ WASM_MEMORY . buffer ,
736
+ arrayPtr ,
737
+ field . type ,
738
+ copy
739
+ ) ;
740
+
741
+ for ( let i = 0 ; i < 3 ; i ++ ) {
742
+ expect ( originalVector . get ( i ) ) . toStrictEqual ( wasmVector . get ( i ) ) ;
743
+ }
744
+ }
745
+
746
+ it ( "copy=false" , ( ) => test ( false ) ) ;
747
+ it ( "copy=true" , ( ) => test ( true ) ) ;
748
+ } ) ;
0 commit comments