diff options
Diffstat (limited to 'ext/dba/dba_db3.c')
| -rw-r--r-- | ext/dba/dba_db3.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/ext/dba/dba_db3.c b/ext/dba/dba_db3.c index ae1405705d..809c5408eb 100644 --- a/ext/dba/dba_db3.c +++ b/ext/dba/dba_db3.c @@ -76,6 +76,21 @@ DBA_OPEN_FUNC(db3) filemode = (*info->argv[0])->value.lval; } + if(info->argc > 1 + && ((info->mode == DBA_CREAT && type != DB_UNKNOWN) + || info->mode == DBA_TRUNC)) { + convert_to_long_ex(info->argv[1]); + switch ((*info->argv[1])->value.lval) { + case DBA_HASH: + type = DB_HASH; + break; + case DBA_BTREE: + default: + type = DB_BTREE; + break; + } + } + if (db_create(&dbp, NULL, 0) == 0 && dbp->open(dbp, info->path, NULL, type, gmode, filemode) == 0) { dba_db3_data *data; |
