Skip to content

Commit 0b0b689

Browse files
fixes
1 parent 39b4df8 commit 0b0b689

File tree

11 files changed

+38
-64
lines changed

11 files changed

+38
-64
lines changed

src/EFCore.Ydb/src/Query/Internal/Translators/YdbByteArrayMethodTranslator.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public class YdbByteArrayMethodTranslator(ISqlExpressionFactory sqlExpressionFac
3939
{
4040
return null;
4141
}
42-
42+
4343
var source = arguments[0];
4444

4545
var value = arguments[1] is SqlConstantExpression constantValue
@@ -60,6 +60,5 @@ public class YdbByteArrayMethodTranslator(ISqlExpressionFactory sqlExpressionFac
6060
typeof(int)
6161
)
6262
);
63-
6463
}
6564
}

src/EFCore.Ydb/src/Query/Internal/Translators/YdbDAteTimeMemberTranslator.cs

Lines changed: 11 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -10,22 +10,11 @@
1010

1111
namespace EntityFrameworkCore.Ydb.Query.Internal.Translators;
1212

13-
public class YdbDateTimeMemberTranslator : IMemberTranslator
13+
public class YdbDateTimeMemberTranslator(
14+
IRelationalTypeMappingSource typeMappingSource,
15+
YdbSqlExpressionFactory sqlExpressionFactory)
16+
: IMemberTranslator
1417
{
15-
private readonly IRelationalTypeMappingSource _typeMappingSource;
16-
private readonly YdbSqlExpressionFactory _sqlExpressionFactory;
17-
private readonly RelationalTypeMapping _timestampMapping;
18-
19-
public YdbDateTimeMemberTranslator(
20-
IRelationalTypeMappingSource typeMappingSource,
21-
YdbSqlExpressionFactory sqlExpressionFactory
22-
)
23-
{
24-
_typeMappingSource = typeMappingSource;
25-
_timestampMapping = typeMappingSource.FindMapping(typeof(DateTime), "TimeStamp")!;
26-
_sqlExpressionFactory = sqlExpressionFactory;
27-
}
28-
2918
public virtual SqlExpression? Translate(
3019
SqlExpression? instance,
3120
MemberInfo member,
@@ -51,8 +40,8 @@ YdbSqlExpressionFactory sqlExpressionFactory
5140
{
5241
case { TypeMapping: YdbDateTimeTypeMapping }:
5342
case { Type: var type } when type == typeof(DateTime):
54-
return _sqlExpressionFactory.Convert(
55-
_sqlExpressionFactory.Convert(instance, typeof(DateOnly)),
43+
return sqlExpressionFactory.Convert(
44+
sqlExpressionFactory.Convert(instance, typeof(DateOnly)),
5645
typeof(DateTime)
5746
);
5847
case { TypeMapping: YdbDateOnlyTypeMapping }:
@@ -89,27 +78,27 @@ YdbSqlExpressionFactory sqlExpressionFactory
8978

9079
SqlExpression UtcNow()
9180
{
92-
return _sqlExpressionFactory.Function(
81+
return sqlExpressionFactory.Function(
9382
"CurrentUtc" + returnType.Name == "DateOnly" ? "Date" : returnType.Name,
9483
[],
9584
nullable: false,
9685
argumentsPropagateNullability: ArrayUtil.TrueArrays[0],
9786
returnType,
98-
_typeMappingSource.FindMapping(returnType)
87+
typeMappingSource.FindMapping(returnType)
9988
);
10089
}
10190
}
10291

103-
private SqlExpression? DatePart(SqlExpression instance, string partName)
92+
private SqlExpression DatePart(SqlExpression instance, string partName)
10493
{
105-
var result = _sqlExpressionFactory.Function(
94+
var result = sqlExpressionFactory.Function(
10695
$"DateTime::{partName}",
10796
[instance],
10897
nullable: true,
10998
argumentsPropagateNullability: ArrayUtil.TrueArrays[1],
11099
typeof(short) // Doesn't matter because we cast it to int in next line anyway
111100
);
112101

113-
return _sqlExpressionFactory.Convert(result, typeof(int));
102+
return sqlExpressionFactory.Convert(result, typeof(int));
114103
}
115104
}

src/EFCore.Ydb/src/Query/Internal/Translators/YdbMathTranslator.cs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -80,12 +80,6 @@ public class YdbMathTranslator : IMethodCallTranslator
8080
typeof(MathF).GetMethod(nameof(MathF.Round), [typeof(float), typeof(int)])!
8181
];
8282

83-
private static readonly List<MethodInfo> LogWithBaseMethods =
84-
[
85-
typeof(Math).GetMethod(nameof(Math.Log), [typeof(double), typeof(double)])!,
86-
typeof(MathF).GetMethod(nameof(MathF.Log), [typeof(float), typeof(float)])!
87-
];
88-
8983
private readonly ISqlExpressionFactory _sqlExpressionFactory;
9084

9185
public YdbMathTranslator(ISqlExpressionFactory sqlExpressionFactory)

src/EFCore.Ydb/src/Query/Internal/YdbSqlAliasManager.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,16 @@ public class YdbSqlAliasManager : SqlAliasManager
1111
public override Expression PostprocessAliases(Expression expression)
1212
{
1313
var aliasRewriter = new AliasRewriter();
14+
#pragma warning disable EF1001
1415
return base.PostprocessAliases(aliasRewriter.Visit(expression));
16+
#pragma warning restore EF1001
1517
}
1618

1719
// TODO: Temporary solution to solve following problem (https://t.me/ydb_ru/28649)
1820
// Doesn't work in all cases. Should be improved
1921
private sealed class AliasRewriter : ExpressionVisitor
2022
{
21-
private bool isRootSelect = true;
23+
private bool _isRootSelect = true;
2224

2325
[return: NotNullIfNotNull("node")]
2426
public override Expression? Visit(Expression? node) => node switch
@@ -38,8 +40,8 @@ private sealed class AliasRewriter : ExpressionVisitor
3840

3941
private Expression VisitSelect(SelectExpression selectExpression)
4042
{
41-
var newProjections = AdjustAliases(selectExpression.Projection, isRootSelect);
42-
isRootSelect = false;
43+
var newProjections = AdjustAliases(selectExpression.Projection, _isRootSelect);
44+
_isRootSelect = false;
4345

4446
var newTables = new List<TableExpressionBase>(selectExpression.Tables.Count);
4547
foreach (var table in selectExpression.Tables)

src/EFCore.Ydb/src/Storage/Internal/Mapping/YdbDateTimeTypeMapping.cs

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,16 @@
1-
using System;
21
using System.Data;
32
using Microsoft.EntityFrameworkCore.Storage;
43

54
namespace EntityFrameworkCore.Ydb.Storage.Internal.Mapping;
65

7-
public class YdbDateTimeTypeMapping : DateTimeTypeMapping
6+
public class YdbDateTimeTypeMapping(
7+
string storeType,
8+
DbType? dbType
9+
) : DateTimeTypeMapping(storeType, dbType)
810
{
911
private const string DateTimeFormatConst = @"{0:yyyy-MM-dd HH\:mm\:ss.fffffff}";
1012

11-
private string StoreTypeLiteral { get; }
12-
13-
public YdbDateTimeTypeMapping(
14-
string storeType,
15-
DbType? dbType
16-
) : base(storeType, dbType)
17-
{
18-
StoreTypeLiteral = storeType;
19-
}
13+
private string StoreTypeLiteral { get; } = storeType;
2014

2115
protected override string SqlLiteralFormatString
2216
=> "CAST('" + DateTimeFormatConst + $"' AS {StoreTypeLiteral})";

src/EFCore.Ydb/test/EntityFrameworkCore.Ydb.FunctionalTests/LoadYdbTest.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,8 @@ protected override void ClearLog()
1818
=> Fixture.TestSqlLoggerFactory.Clear();
1919

2020
protected override void RecordLog()
21-
=> Sql = Fixture.TestSqlLoggerFactory.Sql;
22-
23-
private string Sql { get; set; } = null!;
21+
{
22+
}
2423

2524
public class LoadYdbFixture : LoadFixtureBase
2625
{

src/EFCore.Ydb/test/EntityFrameworkCore.Ydb.FunctionalTests/ModelBuilding/YdbModelBuilderGenericTest.cs

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ public class YdbModelBuilderGenericTest : YdbModelBuilderTestBase
88
public class YdbGenericNonRelationship(YdbModelBuilderFixture fixture) : YdbNonRelationship(fixture)
99
{
1010
[ConditionalFact(Skip = "TODO: Not ready yet")]
11-
public override void Element_types_can_have_precision_and_scale() => base.Element_types_can_have_precision_and_scale();
11+
public override void Element_types_can_have_precision_and_scale() =>
12+
base.Element_types_can_have_precision_and_scale();
1213

1314
[ConditionalFact(Skip = "TODO: Not ready yet")]
1415
public override void Element_types_have_default_precision_and_scale() =>
@@ -17,43 +18,43 @@ public override void Element_types_have_default_precision_and_scale() =>
1718
[ConditionalFact(Skip = "TODO: Not ready yet")]
1819
public override void Element_types_have_default_unicode() => base.Element_types_have_default_unicode();
1920

20-
protected override TestModelBuilder CreateModelBuilder(Action<ModelConfigurationBuilder>? configure)
21+
protected override TestModelBuilder CreateModelBuilder(Action<ModelConfigurationBuilder>? configure = null)
2122
=> new GenericTestModelBuilder(Fixture, configure);
2223
}
2324

2425
public class YdbGenericComplexType(YdbModelBuilderFixture fixture) : YdbComplexType(fixture)
2526
{
26-
protected override TestModelBuilder CreateModelBuilder(Action<ModelConfigurationBuilder>? configure)
27+
protected override TestModelBuilder CreateModelBuilder(Action<ModelConfigurationBuilder>? configure = null)
2728
=> new GenericTestModelBuilder(Fixture, configure);
2829
}
2930

3031
public class YdbGenericInheritance(YdbModelBuilderFixture fixture) : YdbInheritance(fixture)
3132
{
32-
protected override TestModelBuilder CreateModelBuilder(Action<ModelConfigurationBuilder>? configure)
33+
protected override TestModelBuilder CreateModelBuilder(Action<ModelConfigurationBuilder>? configure = null)
3334
=> new GenericTestModelBuilder(Fixture, configure);
3435
}
3536

3637
public class YdbGenericOneToMany(YdbModelBuilderFixture fixture) : YdbOneToMany(fixture)
3738
{
38-
protected override TestModelBuilder CreateModelBuilder(Action<ModelConfigurationBuilder>? configure)
39+
protected override TestModelBuilder CreateModelBuilder(Action<ModelConfigurationBuilder>? configure = null)
3940
=> new GenericTestModelBuilder(Fixture, configure);
4041
}
4142

4243
public class YdbGenericManyToOne(YdbModelBuilderFixture fixture) : YdbManyToOne(fixture)
4344
{
44-
protected override TestModelBuilder CreateModelBuilder(Action<ModelConfigurationBuilder>? configure)
45+
protected override TestModelBuilder CreateModelBuilder(Action<ModelConfigurationBuilder>? configure = null)
4546
=> new GenericTestModelBuilder(Fixture, configure);
4647
}
4748

4849
public class YdbGenericOneToOne(YdbModelBuilderFixture fixture) : YdbOneToOne(fixture)
4950
{
50-
protected override TestModelBuilder CreateModelBuilder(Action<ModelConfigurationBuilder>? configure)
51+
protected override TestModelBuilder CreateModelBuilder(Action<ModelConfigurationBuilder>? configure = null)
5152
=> new GenericTestModelBuilder(Fixture, configure);
5253
}
5354

5455
public class YdbGenericManyToMany(YdbModelBuilderFixture fixture) : YdbManyToMany(fixture)
5556
{
56-
protected override TestModelBuilder CreateModelBuilder(Action<ModelConfigurationBuilder>? configure)
57+
protected override TestModelBuilder CreateModelBuilder(Action<ModelConfigurationBuilder>? configure = null)
5758
=> new GenericTestModelBuilder(Fixture, configure);
5859
}
5960

@@ -68,7 +69,7 @@ public override void Shared_type_entity_types_with_FK_to_another_entity_works()
6869
base.Shared_type_entity_types_with_FK_to_another_entity_works();
6970

7071

71-
protected override TestModelBuilder CreateModelBuilder(Action<ModelConfigurationBuilder>? configure)
72+
protected override TestModelBuilder CreateModelBuilder(Action<ModelConfigurationBuilder>? configure = null)
7273
=> new GenericTestModelBuilder(Fixture, configure);
7374
}
7475
}

src/EFCore.Ydb/test/EntityFrameworkCore.Ydb.FunctionalTests/Query/FiltersInheritanceQueryYdbTest.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
using Microsoft.EntityFrameworkCore.Query;
2-
using Xunit.Abstractions;
32

43
namespace EntityFrameworkCore.Ydb.FunctionalTests.Query;
54

65
public class FiltersInheritanceQueryYdbTest : FiltersInheritanceQueryTestBase<TphFiltersInheritanceQueryYdbFixture>
76
{
8-
public FiltersInheritanceQueryYdbTest(TphFiltersInheritanceQueryYdbFixture fixture,
9-
ITestOutputHelper testOutputHelper)
7+
public FiltersInheritanceQueryYdbTest(TphFiltersInheritanceQueryYdbFixture fixture)
108
: base(fixture)
119
{
1210
Fixture.TestSqlLoggerFactory.Clear();

src/EFCore.Ydb/test/EntityFrameworkCore.Ydb.FunctionalTests/Query/GearsOfWarFromSqlQueryYdbTest.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
using Microsoft.EntityFrameworkCore.Query;
2-
using Xunit.Abstractions;
32

43
namespace EntityFrameworkCore.Ydb.FunctionalTests.Query;
54

65
public class GearsOfWarFromSqlQueryYdbTest : GearsOfWarFromSqlQueryTestBase<GearsOfWarQueryYdbFixture>
76
{
8-
public GearsOfWarFromSqlQueryYdbTest(GearsOfWarQueryYdbFixture fixture, ITestOutputHelper testOutputHelper)
7+
public GearsOfWarFromSqlQueryYdbTest(GearsOfWarQueryYdbFixture fixture)
98
: base(fixture)
109
{
1110
Fixture.TestSqlLoggerFactory.Clear();

src/EFCore.Ydb/test/EntityFrameworkCore.Ydb.FunctionalTests/Query/TPTGearsOfWarQueryYdbTest.cs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -647,9 +647,6 @@ public override Task Project_one_value_type_from_empty_collection(bool async) =>
647647
public override Task Project_one_value_type_converted_to_nullable_from_empty_collection(bool async) =>
648648
base.Project_one_value_type_converted_to_nullable_from_empty_collection(async);
649649

650-
public override Task Project_one_value_type_with_client_projection_from_empty_collection(bool async) =>
651-
base.Project_one_value_type_with_client_projection_from_empty_collection(async);
652-
653650
[ConditionalTheory(Skip = "TODO: Fix tests")]
654651
[MemberData(nameof(IsAsyncData))]
655652
public override Task Filter_on_subquery_projecting_one_value_type_from_empty_collection(bool async) =>

0 commit comments

Comments
 (0)