Skip to content

Commit 9721aee

Browse files
committed
Adds net9 and net10 TFMs, fixes related errors, some of the warnings
1 parent 9725f41 commit 9721aee

File tree

15 files changed

+36
-33
lines changed

15 files changed

+36
-33
lines changed

PlainBytes.LiteDB.Tests/Database/Contains_Tests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@ public void ArrayContains_ShouldHaveCount1()
2020
var collection = database.GetCollection<ItemWithEnumerable>();
2121
collection.Insert(new ItemWithEnumerable
2222
{
23-
Array = new int[] { randomValue }
23+
Array = [randomValue]
2424
});
2525

26-
var result = collection.Find(i => i.Array.Contains(randomValue)).ToList();
26+
var result = collection.Find(i => i.Array.AsEnumerable().Contains(randomValue)).ToList();
2727
result.Should().HaveCount(1);
2828
}
2929
}

PlainBytes.LiteDB.Tests/Issues/Issue2471_Test.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ public void Ensure_Query_GetPlan_Releases_Lock()
8282

8383
// doing Phone query
8484
var queryPhone = col.Query()
85-
.Where(x => x.Phones.Contains(3));
85+
.Where(x => x.Phones.AsEnumerable().Contains(3));
8686

8787
var planPhone = queryPhone.GetPlan();
8888

PlainBytes.LiteDB.Tests/Mapper/LinqBsonExpression_Tests.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -214,12 +214,12 @@ public void Linq_Enumerables()
214214
TestExpr<User>(x => x.Phones.Last(), "$.Phones[-1]");
215215

216216
// contains
217-
TestExpr<User>(x => x.PhoneNumbers.Contains(1234), "PhoneNumbers ANY = @p0", 1234);
218-
TestExpr<User>(x => x.Phones2.Contains(new Phone { Number = 1 }), "Phones2 ANY = { Number: @p0 }", 1);
217+
TestExpr<User>(x => x.PhoneNumbers.AsEnumerable().Contains(1234), "PhoneNumbers ANY = @p0", 1234);
218+
TestExpr<User>(x => x.Phones2.AsEnumerable().Contains(new Phone { Number = 1 }), "Phones2 ANY = { Number: @p0 }", 1);
219219

220220
// negated contains
221-
TestExpr<User>(x => !x.PhoneNumbers.Contains(1234), "(PhoneNumbers ANY = @p0) = false", 1234);
222-
TestExpr<User>(x => !x.Phones2.Contains(new Phone { Number = 1 }), "(Phones2 ANY = { Number: @p0 }) = false", 1);
221+
TestExpr<User>(x => !x.PhoneNumbers.AsEnumerable().Contains(1234), "(PhoneNumbers ANY = @p0) = false", 1234);
222+
TestExpr<User>(x => !x.Phones2.AsEnumerable().Contains(new Phone { Number = 1 }), "(Phones2 ANY = { Number: @p0 }) = false", 1);
223223

224224
// fixed position with filter expression
225225
TestExpr<User>(x => x.Phones.First(p => p.Number == 1), "FIRST(FILTER($.Phones=>(@.Number=@p0)))", 1);
@@ -265,7 +265,7 @@ public void Linq_Predicate()
265265
var numbersArrayList = new ArrayList() { 1, 2, 3 };
266266
var numbersBson = new BsonArray(numbersArray.Select(x => new BsonValue(x)));
267267

268-
TestExpr<User>(x => numbersArray.Contains(x.Id), "@p0 ANY = _id", numbersBson);
268+
TestExpr<User>(x => Enumerable.Contains(numbersArray, x.Id), "@p0 ANY = _id", numbersBson);
269269
TestExpr<User>(x => numbersList.Contains(x.Id), "@p0 ANY = _id", numbersBson);
270270
TestExpr<User>(x => numbersSet.Contains(x.Id), "@p0 ANY = _id", numbersBson);
271271
TestExpr<User>(x => numbersArrayList.Contains(x.Id), "@p0 ANY = _id", numbersBson);
@@ -495,8 +495,8 @@ public void Linq_Array_Contains()
495495
var ids = new int[] { 1, 2, 3 };
496496
//var ids = new List<int> { 1, 2, 3 }; // works too
497497

498-
// the result are correct, but can be optimize (in QueryOptimzier) to `$._id IN @p0` (index will be used)
499-
TestExpr<User>(x => ids.Contains(x.Id), "@p0 ANY = $._id", new BsonArray { 1, 2, 3 });
498+
// the result are correct, but can be optimized (in QueryOptimizer) to `$._id IN @p0` (index will be used)
499+
TestExpr<User>(x => Enumerable.Contains(ids, x.Id), "@p0 ANY = $._id", new BsonArray { 1, 2, 3 });
500500

501501
TestExpr<User>(x => ids.Where(q => q == x.Id).Count() > 0, "(COUNT(FILTER(@p0 => (@=$._id))) > @p1)", new BsonArray { 1, 2, 3 }, 0);
502502
}

PlainBytes.LiteDB.Tests/PlainBytes.LiteDB.Tests.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>net9.0</TargetFramework>
4+
<TargetFrameworks>net8.0;net9.0;net10.0;</TargetFrameworks>
55
<RootNamespace>LiteDB.Tests</RootNamespace>
66
<Authors>Maurício David</Authors>
77
<Copyright>MIT</Copyright>

PlainBytes.LiteDB/Client/Mapper/Linq/LinqExpressionVisitor.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ internal class LinqExpressionVisitor : ExpressionVisitor
4646

4747
public LinqExpressionVisitor(BsonMapper mapper, Expression expr)
4848
{
49+
ArgumentNullException.ThrowIfNull(expr);
50+
4951
_mapper = mapper;
5052
_expr = expr;
5153

@@ -69,17 +71,17 @@ public BsonExpression Resolve(bool predicate)
6971

7072
try
7173
{
72-
var e = BsonExpression.Create(expression, _parameters);
74+
var bsonExpression = BsonExpression.Create(expression, _parameters);
7375

7476
// if expression must return an predicate but expression result is Path/Parameter/Call add `= true`
75-
if (predicate && (e.Type == BsonExpressionType.Path || e.Type == BsonExpressionType.Call || e.Type == BsonExpressionType.Parameter))
77+
if (predicate && (bsonExpression.Type == BsonExpressionType.Path || bsonExpression.Type == BsonExpressionType.Call || bsonExpression.Type == BsonExpressionType.Parameter))
7678
{
7779
expression = "(" + expression + " = true)";
7880

79-
e = BsonExpression.Create(expression, _parameters);
81+
bsonExpression = BsonExpression.Create(expression, _parameters);
8082
}
8183

82-
return e;
84+
return bsonExpression;
8385
}
8486
catch (Exception ex)
8587
{

PlainBytes.LiteDB/Client/Mapper/Linq/ParameterExpressionVisitor.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@ namespace PlainBytes.LiteDB
77
/// </summary>
88
internal class ParameterExpressionVisitor : ExpressionVisitor
99
{
10-
public bool IsParameter { get; private set; } = false;
10+
private bool IsParameter { get; set; }
1111

1212
protected override Expression VisitParameter(ParameterExpression node)
1313
{
14-
this.IsParameter = true;
14+
IsParameter = true;
1515

1616
return base.VisitParameter(node);
1717
}

PlainBytes.LiteDB/Engine/Disk/DiskReader.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ private void ReadStream(Stream stream, long position, BufferSlice buffer)
5959

6060
stream.Position = position;
6161

62-
stream.Read(buffer.Array, buffer.Offset, buffer.Count);
62+
stream.ReadExactly(buffer.Array, buffer.Offset, buffer.Count);
6363

6464
DEBUG(buffer.All(0) == false, "check if are not reading out of file length");
6565
}

PlainBytes.LiteDB/Engine/Disk/DiskService.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ internal void MarkAsInvalidState()
241241
using (var stream = _dataFactory.GetStream(true, true))
242242
{
243243
var buffer = _bufferPool.Rent(PAGE_SIZE);
244-
stream.Read(buffer, 0, PAGE_SIZE);
244+
stream.ReadExactly(buffer, 0, PAGE_SIZE);
245245
buffer[HeaderPage.P_INVALID_DATAFILE_STATE] = 1;
246246
stream.Position = 0;
247247
stream.Write(buffer, 0, PAGE_SIZE);

PlainBytes.LiteDB/Engine/Disk/Streams/AesStream.cs

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@ public class AesStream : Stream
2323

2424
private readonly byte[] _decryptedZeroes = new byte[16];
2525

26-
private static readonly byte[] _emptyContent = new byte[PAGE_SIZE - 1 - 16]; // 1 for aes indicator + 16 for salt
27-
2826
private static readonly ArrayPool<byte> _bufferPool = ArrayPool<byte>.Shared;
2927

3028
public byte[] Salt { get; }
@@ -83,15 +81,17 @@ public AesStream(string password, Stream stream)
8381
throw LiteException.FileNotEncrypted();
8482
}
8583

86-
_stream.Read(this.Salt, 0, ENCRYPTION_SALT_SIZE);
84+
_stream.ReadExactly(this.Salt, 0, ENCRYPTION_SALT_SIZE);
8785
}
8886

8987
_aes = Aes.Create();
9088
_aes.Padding = PaddingMode.None;
9189
_aes.Mode = CipherMode.ECB;
9290

9391
#pragma warning disable SYSLIB0041
92+
#pragma warning disable SYSLIB0060
9493
var pdb = new Rfc2898DeriveBytes(password, this.Salt);
94+
#pragma warning restore SYSLIB0060
9595
#pragma warning restore SYSLIB0041
9696

9797
using (pdb as IDisposable)
@@ -114,11 +114,10 @@ public AesStream(string password, Stream stream)
114114
// set stream to password checking
115115
_stream.Position = 32;
116116

117-
118117
if (!isNew)
119118
{
120119
// check whether bytes 32 to 64 is empty. This indicates PlainBytes.LiteDB was unable to write encrypted 1s during last attempt.
121-
_stream.Read(checkBuffer, 0, checkBufferSize);
120+
_stream.ReadExactly(checkBuffer, 0, checkBufferSize);
122121
isNew = checkBuffer.All(x => x == 0);
123122

124123
// reset checkBuffer and stream position
@@ -139,7 +138,7 @@ public AesStream(string password, Stream stream)
139138
}
140139
else
141140
{
142-
_reader.Read(checkBuffer, 0, checkBufferSize);
141+
_reader.ReadExactly(checkBuffer, 0, checkBufferSize);
143142

144143
if (!checkBuffer.All(x => x == 1))
145144
{
@@ -152,7 +151,7 @@ public AesStream(string password, Stream stream)
152151
using (var ms = new MemoryStream(msBuffer))
153152
using (var tempStream = new CryptoStream(ms, _decryptor, CryptoStreamMode.Read))
154153
{
155-
tempStream.Read(_decryptedZeroes, 0, _decryptedZeroes.Length);
154+
tempStream.ReadExactly(_decryptedZeroes, 0, _decryptedZeroes.Length);
156155
}
157156
}
158157
catch

PlainBytes.LiteDB/Engine/Engine/Upgrade.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ private void TryUpgrade()
3131

3232

3333
stream.Position = 0;
34-
stream.Read(buffer, 0, bufferSize);
34+
stream.ReadExactly(buffer, 0, bufferSize);
3535

3636
if (FileReaderV7.IsVersion(buffer) == false) return;
3737
}

0 commit comments

Comments
 (0)