@@ -344,19 +344,30 @@ STATIC FILEVTABLE btree_stream_fvtable = {
344
344
345
345
STATIC mp_obj_t mod_btree_open (size_t n_args , const mp_obj_t * pos_args , mp_map_t * kw_args ) {
346
346
static const mp_arg_t allowed_args [] = {
347
- { MP_QSTR_server_side , MP_ARG_KW_ONLY | MP_ARG_BOOL , {.u_bool = false} },
347
+ { MP_QSTR_flags , MP_ARG_KW_ONLY | MP_ARG_INT , {.u_int = 0 } },
348
+ { MP_QSTR_cachesize , MP_ARG_KW_ONLY | MP_ARG_INT , {.u_int = 0 } },
349
+ { MP_QSTR_pagesize , MP_ARG_KW_ONLY | MP_ARG_INT , {.u_int = 0 } },
350
+ { MP_QSTR_minkeypage , MP_ARG_KW_ONLY | MP_ARG_INT , {.u_int = 0 } },
348
351
};
349
352
350
353
// Make sure we got a stream object
351
354
mp_get_stream_raise (pos_args [0 ], MP_STREAM_OP_READ | MP_STREAM_OP_WRITE | MP_STREAM_OP_IOCTL );
352
355
353
356
struct {
354
- mp_arg_val_t server_side ;
357
+ mp_arg_val_t flags ;
358
+ mp_arg_val_t cachesize ;
359
+ mp_arg_val_t pagesize ;
360
+ mp_arg_val_t minkeypage ;
355
361
} args ;
356
362
mp_arg_parse_all (n_args - 1 , pos_args + 1 , kw_args ,
357
363
MP_ARRAY_SIZE (allowed_args ), allowed_args , (mp_arg_val_t * )& args );
364
+ BTREEINFO openinfo = {0 };
365
+ openinfo .flags = args .flags .u_int ;
366
+ openinfo .cachesize = args .cachesize .u_int ;
367
+ openinfo .psize = args .pagesize .u_int ;
368
+ openinfo .minkeypage = args .minkeypage .u_int ;
358
369
359
- DB * db = __bt_open (pos_args [0 ], & btree_stream_fvtable , /* openinfo*/ NULL , /*dflags*/ 0 );
370
+ DB * db = __bt_open (pos_args [0 ], & btree_stream_fvtable , & openinfo , /*dflags*/ 0 );
360
371
if (db == NULL ) {
361
372
nlr_raise (mp_obj_new_exception_arg1 (& mp_type_OSError , MP_OBJ_NEW_SMALL_INT (errno )));
362
373
}
0 commit comments