]> git.sur5r.net Git - openldap/commitdiff
Add mdb_dbi_flags()
authorHoward Chu <hyc@symas.com>
Mon, 15 Jul 2013 17:57:13 +0000 (10:57 -0700)
committerHoward Chu <hyc@symas.com>
Mon, 15 Jul 2013 17:57:13 +0000 (10:57 -0700)
Retrieve the flags from a DB handle.

libraries/liblmdb/lmdb.h
libraries/liblmdb/mdb.c

index 7c5a63f0e9bd607f44e6cb654799fc422622ed9d..c38c7dbf8fc7923722209112898de9b4399f88b4 100644 (file)
@@ -889,6 +889,15 @@ int  mdb_dbi_open(MDB_txn *txn, const char *name, unsigned int flags, MDB_dbi *d
         */
 int  mdb_stat(MDB_txn *txn, MDB_dbi dbi, MDB_stat *stat);
 
+       /** @brief Retrieve the DB flags for a database handle.
+        *
+        * @param[in] env An environment handle returned by #mdb_env_create()
+        * @param[in] dbi A database handle returned by #mdb_dbi_open()
+        * @param[out] flags Address where the flags will be returned.
+        * @return A non-zero error value on failure and 0 on success.
+        */
+int mdb_dbi_flags(MDB_env *env, MDB_dbi dbi, unsigned int *flags);
+
        /** @brief Close a database handle.
         *
         * This call is not mutex protected. Handles should only be closed by
index 2f997737f91f8d1139cdf0a9035c4c50817de9d8..f895c0fb5e2529e0a940747d5db132f3be38dda0 100644 (file)
@@ -7743,6 +7743,15 @@ void mdb_dbi_close(MDB_env *env, MDB_dbi dbi)
        free(ptr);
 }
 
+int mdb_dbi_flags(MDB_env *env, MDB_dbi dbi, unsigned int *flags)
+{
+       /* We could return the flags for the FREE_DBI too but what's the point? */
+       if (dbi <= MAIN_DBI || dbi >= env->me_numdbs)
+               return EINVAL;
+       *flags = env->me_dbflags[dbi];
+       return MDB_SUCCESS;
+}
+
 /** Add all the DB's pages to the free list.
  * @param[in] mc Cursor on the DB to free.
  * @param[in] subs non-Zero to check for sub-DBs in this DB.