@@ -400,29 +400,40 @@ describe('api', () => {
400400 test ( 'should support running prepared statements' , async ( ) => {
401401 await withConnection ( async ( connection ) => {
402402 const prepared = await connection . prepare (
403- 'select $num as a, $str as b, $bool as c, $timetz as d, $list as e, $struct as f, $array as g, $null as h'
403+ 'select \
404+ $num as num, \
405+ $str as str, \
406+ $bool as bool, \
407+ $timetz as timetz, \
408+ $varint as varint, \
409+ $list as list, \
410+ $struct as struct, \
411+ $array as array, \
412+ $null as null_value'
404413 ) ;
405- assert . strictEqual ( prepared . parameterCount , 8 ) ;
414+ assert . strictEqual ( prepared . parameterCount , 9 ) ;
406415 assert . strictEqual ( prepared . parameterName ( 1 ) , 'num' ) ;
407416 assert . strictEqual ( prepared . parameterName ( 2 ) , 'str' ) ;
408417 assert . strictEqual ( prepared . parameterName ( 3 ) , 'bool' ) ;
409418 assert . strictEqual ( prepared . parameterName ( 4 ) , 'timetz' ) ;
410- assert . strictEqual ( prepared . parameterName ( 5 ) , 'list' ) ;
411- assert . strictEqual ( prepared . parameterName ( 6 ) , 'struct' ) ;
412- assert . strictEqual ( prepared . parameterName ( 7 ) , 'array' ) ;
413- assert . strictEqual ( prepared . parameterName ( 8 ) , 'null' ) ;
419+ assert . strictEqual ( prepared . parameterName ( 5 ) , 'varint' ) ;
420+ assert . strictEqual ( prepared . parameterName ( 6 ) , 'list' ) ;
421+ assert . strictEqual ( prepared . parameterName ( 7 ) , 'struct' ) ;
422+ assert . strictEqual ( prepared . parameterName ( 8 ) , 'array' ) ;
423+ assert . strictEqual ( prepared . parameterName ( 9 ) , 'null' ) ;
414424 prepared . bindInteger ( 1 , 10 ) ;
415425 prepared . bindVarchar ( 2 , 'abc' ) ;
416426 prepared . bindBoolean ( 3 , true ) ;
417427 prepared . bindTimeTZ ( 4 , TIMETZ . max ) ;
418- prepared . bindList ( 5 , listValue ( [ 100 , 200 , 300 ] ) , LIST ( INTEGER ) ) ;
428+ prepared . bindVarInt ( 5 , VARINT . max ) ;
429+ prepared . bindList ( 6 , listValue ( [ 100 , 200 , 300 ] ) , LIST ( INTEGER ) ) ;
419430 prepared . bindStruct (
420- 6 ,
431+ 7 ,
421432 structValue ( { 'a' : 42 , 'b' : 'duck' } ) ,
422433 STRUCT ( { 'a' : INTEGER , 'b' : VARCHAR } )
423434 ) ;
424- prepared . bindArray ( 7 , arrayValue ( [ 100 , 200 , 300 ] ) , ARRAY ( INTEGER , 3 ) ) ;
425- prepared . bindNull ( 8 ) ;
435+ prepared . bindArray ( 8 , arrayValue ( [ 100 , 200 , 300 ] ) , ARRAY ( INTEGER , 3 ) ) ;
436+ prepared . bindNull ( 9 ) ;
426437 assert . equal ( prepared . parameterTypeId ( 1 ) , DuckDBTypeId . INTEGER ) ;
427438 assert . deepEqual ( prepared . parameterType ( 1 ) , INTEGER ) ;
428439 // See https://github.com/duckdb/duckdb/issues/16137
@@ -432,29 +443,32 @@ describe('api', () => {
432443 assert . deepEqual ( prepared . parameterType ( 3 ) , BOOLEAN ) ;
433444 assert . equal ( prepared . parameterTypeId ( 4 ) , DuckDBTypeId . TIME_TZ ) ;
434445 assert . deepEqual ( prepared . parameterType ( 4 ) , TIMETZ ) ;
435- assert . equal ( prepared . parameterTypeId ( 5 ) , DuckDBTypeId . LIST ) ;
436- assert . deepEqual ( prepared . parameterType ( 5 ) , LIST ( INTEGER ) ) ;
437- assert . equal ( prepared . parameterTypeId ( 6 ) , DuckDBTypeId . STRUCT ) ;
438- assert . deepEqual ( prepared . parameterType ( 6 ) , STRUCT ( { 'a' : INTEGER , 'b' : VARCHAR } ) ) ;
439- assert . equal ( prepared . parameterTypeId ( 7 ) , DuckDBTypeId . ARRAY ) ;
440- assert . deepEqual ( prepared . parameterType ( 7 ) , ARRAY ( INTEGER , 3 ) ) ;
441- assert . equal ( prepared . parameterTypeId ( 8 ) , DuckDBTypeId . SQLNULL ) ;
442- assert . deepEqual ( prepared . parameterType ( 8 ) , SQLNULL ) ;
446+ assert . equal ( prepared . parameterTypeId ( 5 ) , DuckDBTypeId . VARINT ) ;
447+ assert . deepEqual ( prepared . parameterType ( 5 ) , VARINT ) ;
448+ assert . equal ( prepared . parameterTypeId ( 6 ) , DuckDBTypeId . LIST ) ;
449+ assert . deepEqual ( prepared . parameterType ( 6 ) , LIST ( INTEGER ) ) ;
450+ assert . equal ( prepared . parameterTypeId ( 7 ) , DuckDBTypeId . STRUCT ) ;
451+ assert . deepEqual ( prepared . parameterType ( 7 ) , STRUCT ( { 'a' : INTEGER , 'b' : VARCHAR } ) ) ;
452+ assert . equal ( prepared . parameterTypeId ( 8 ) , DuckDBTypeId . ARRAY ) ;
453+ assert . deepEqual ( prepared . parameterType ( 8 ) , ARRAY ( INTEGER , 3 ) ) ;
454+ assert . equal ( prepared . parameterTypeId ( 9 ) , DuckDBTypeId . SQLNULL ) ;
455+ assert . deepEqual ( prepared . parameterType ( 9 ) , SQLNULL ) ;
443456 const result = await prepared . run ( ) ;
444457 assertColumns ( result , [
445- { name : 'a' , type : INTEGER } ,
446- { name : 'b' , type : VARCHAR } ,
447- { name : 'c' , type : BOOLEAN } ,
448- { name : 'd' , type : TIMETZ } ,
449- { name : 'e' , type : LIST ( INTEGER ) } ,
450- { name : 'f' , type : STRUCT ( { 'a' : INTEGER , 'b' : VARCHAR } ) } ,
451- { name : 'g' , type : ARRAY ( INTEGER , 3 ) } ,
452- { name : 'h' , type : INTEGER } ,
458+ { name : 'num' , type : INTEGER } ,
459+ { name : 'str' , type : VARCHAR } ,
460+ { name : 'bool' , type : BOOLEAN } ,
461+ { name : 'timetz' , type : TIMETZ } ,
462+ { name : 'varint' , type : VARINT } ,
463+ { name : 'list' , type : LIST ( INTEGER ) } ,
464+ { name : 'struct' , type : STRUCT ( { 'a' : INTEGER , 'b' : VARCHAR } ) } ,
465+ { name : 'array' , type : ARRAY ( INTEGER , 3 ) } ,
466+ { name : 'null_value' , type : INTEGER } ,
453467 ] ) ;
454468 const chunk = await result . fetchChunk ( ) ;
455469 assert . isDefined ( chunk ) ;
456470 if ( chunk ) {
457- assert . strictEqual ( chunk . columnCount , 8 ) ;
471+ assert . strictEqual ( chunk . columnCount , 9 ) ;
458472 assert . strictEqual ( chunk . rowCount , 1 ) ;
459473 assertValues < number , DuckDBIntegerVector > (
460474 chunk ,
@@ -475,16 +489,17 @@ describe('api', () => {
475489 [ true ]
476490 ) ;
477491 assertValues ( chunk , 3 , DuckDBTimeTZVector , [ TIMETZ . max ] ) ;
478- assertValues ( chunk , 4 , DuckDBListVector , [ listValue ( [ 100 , 200 , 300 ] ) ] ) ;
479- assertValues ( chunk , 5 , DuckDBStructVector , [
492+ assertValues ( chunk , 4 , DuckDBVarIntVector , [ VARINT . max ] ) ;
493+ assertValues ( chunk , 5 , DuckDBListVector , [ listValue ( [ 100 , 200 , 300 ] ) ] ) ;
494+ assertValues ( chunk , 6 , DuckDBStructVector , [
480495 structValue ( { 'a' : 42 , 'b' : 'duck' } ) ,
481496 ] ) ;
482- assertValues ( chunk , 6 , DuckDBArrayVector , [
497+ assertValues ( chunk , 7 , DuckDBArrayVector , [
483498 arrayValue ( [ 100 , 200 , 300 ] ) ,
484499 ] ) ;
485500 assertValues < number , DuckDBIntegerVector > (
486501 chunk ,
487- 7 ,
502+ 8 ,
488503 DuckDBIntegerVector ,
489504 [ null ]
490505 ) ;
0 commit comments