|
|
|
@ -9758,8 +9758,11 @@ int mdb_dbi_open(MDB_txn *txn, const char *name, unsigned int flags, MDB_dbi *db |
|
|
|
|
MDB_node *node = NODEPTR(mc.mc_pg[mc.mc_top], mc.mc_ki[mc.mc_top]); |
|
|
|
|
if ((node->mn_flags & (F_DUPDATA|F_SUBDATA)) != F_SUBDATA) |
|
|
|
|
return MDB_INCOMPATIBLE; |
|
|
|
|
} else if (! (rc == MDB_NOTFOUND && (flags & MDB_CREATE))) { |
|
|
|
|
} else { |
|
|
|
|
if (rc != MDB_NOTFOUND || !(flags & MDB_CREATE)) |
|
|
|
|
return rc; |
|
|
|
|
if (F_ISSET(txn->mt_flags, MDB_TXN_RDONLY)) |
|
|
|
|
return EACCES; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* Done here so we cannot fail after creating a new DB */ |
|
|
|
|