diff --git a/src/LightningDB.Tests/TransactionTests.cs b/src/LightningDB.Tests/TransactionTests.cs
index 5fde364..c66fc72 100644
--- a/src/LightningDB.Tests/TransactionTests.cs
+++ b/src/LightningDB.Tests/TransactionTests.cs
@@ -294,7 +294,7 @@ public void can_get_transaction_id()
env.RunTransactionScenario((tx, _) =>
{
- tx.Id.ShouldBeGreaterThan(0);
+ tx.Id.ShouldBeGreaterThan((nuint)0);
});
}
diff --git a/src/LightningDB/LightningCursor.cs b/src/LightningDB/LightningCursor.cs
index 20cd388..6f8f8d6 100644
--- a/src/LightningDB/LightningCursor.cs
+++ b/src/LightningDB/LightningCursor.cs
@@ -521,9 +521,11 @@ public MDBResultCode Renew(LightningTransaction txn)
///
/// Output parameter where the duplicate count will be stored.
/// Returns
- public MDBResultCode Count(out int value)
+ public MDBResultCode Count(out long value)
{
- return mdb_cursor_count(_handle, out value);
+ var result = mdb_cursor_count(_handle, out var count);
+ value = checked((long)count);
+ return result;
}
private bool ShouldCloseCursor()
diff --git a/src/LightningDB/LightningTransaction.cs b/src/LightningDB/LightningTransaction.cs
index 20afd6e..09fb122 100644
--- a/src/LightningDB/LightningTransaction.cs
+++ b/src/LightningDB/LightningTransaction.cs
@@ -422,7 +422,7 @@ public Stats GetStats(LightningDatabase db)
///
/// Gets the transaction ID.
///
- public int Id => mdb_txn_id(_handle);
+ public nuint Id => mdb_txn_id(_handle);
///
/// Compares two data items according to the database's key comparison function.
diff --git a/src/LightningDB/Native/Lmdb.cs b/src/LightningDB/Native/Lmdb.cs
index 5278a3b..50d5d5a 100644
--- a/src/LightningDB/Native/Lmdb.cs
+++ b/src/LightningDB/Native/Lmdb.cs
@@ -229,7 +229,7 @@ public static partial class Lmdb
/// The transaction ID
[LibraryImport(MDB_DLL_NAME)]
[UnmanagedCallConv(CallConvs = [typeof(CallConvCdecl)])]
- public static partial int mdb_txn_id(nint txn);
+ public static partial nuint mdb_txn_id(nint txn);
///
/// Commits all the operations of a transaction into the database.
@@ -388,7 +388,7 @@ public static partial class Lmdb
/// A result code indicating success or failure
[LibraryImport(MDB_DLL_NAME)]
[UnmanagedCallConv(CallConvs = [typeof(CallConvCdecl)])]
- public static partial MDBResultCode mdb_cursor_count(nint cursor, out int countp);
+ public static partial MDBResultCode mdb_cursor_count(nint cursor, out nuint countp);
///
/// Stores key/data pairs in a database.
@@ -872,7 +872,7 @@ internal static MDBResultCode mdb_env_open(nint env, string path, EnvironmentOpe
/// A transaction handle
/// The transaction ID
[DllImport(MDB_DLL_NAME, CallingConvention = CallingConvention.Cdecl)]
- public static extern int mdb_txn_id(nint txn);
+ public static extern nuint mdb_txn_id(nint txn);
///
/// Commits all the operations of a transaction into the database.
@@ -1040,7 +1040,7 @@ public static MDBResultCode mdb_env_copy2(nint env, string path, EnvironmentCopy
/// Address where the count will be stored
/// A result code indicating success or failure
[DllImport(MDB_DLL_NAME, CallingConvention = CallingConvention.Cdecl)]
- public static extern MDBResultCode mdb_cursor_count(nint cursor, out int countp);
+ public static extern MDBResultCode mdb_cursor_count(nint cursor, out nuint countp);
///
/// Stores key/data pairs in a database.