From e60bc6bedcc527b7dd6bea4f6bddcd412a8075df Mon Sep 17 00:00:00 2001 From: Christopher Jolly Date: Tue, 26 Mar 2024 23:05:05 +0800 Subject: [PATCH 1/3] Fix DateTimeOffset Now and UtcNow --- src/EFCore.Jet.Data/JetDataReader.cs | 4 ++++ .../Internal/JetDateTimeMemberTranslator.cs | 15 ++++++++++-- .../Internal/JetDateTimeOffsetTypeMapping.cs | 4 ++-- .../BuiltInDataTypesJetTest.cs | 2 +- .../Query/GearsOfWarQueryJetTest.cs | 12 ++++++---- .../Query/NorthwindWhereQueryJetTest.cs | 24 +++++++++++-------- .../Query/TPCGearsOfWarQueryJetTest.cs | 16 ++++++------- .../Query/TPTGearsOfWarQueryJetTest.cs | 16 ++++++------- 8 files changed, 58 insertions(+), 35 deletions(-) diff --git a/src/EFCore.Jet.Data/JetDataReader.cs b/src/EFCore.Jet.Data/JetDataReader.cs index 1fd1530b..2befa47b 100644 --- a/src/EFCore.Jet.Data/JetDataReader.cs +++ b/src/EFCore.Jet.Data/JetDataReader.cs @@ -217,6 +217,10 @@ public virtual DateTimeOffset GetDateTimeOffset(int ordinal) { return DateTimeOffset.Parse(stringValue, null, DateTimeStyles.RoundtripKind); } + else if (value is DateTime dateTimeValue && dateTimeValue == JetConfiguration.TimeSpanOffset) + { + return default; + } else if (value is DateTime dateTime) { return new DateTimeOffset(dateTime, TimeSpan.Zero); diff --git a/src/EFCore.Jet/Query/ExpressionTranslators/Internal/JetDateTimeMemberTranslator.cs b/src/EFCore.Jet/Query/ExpressionTranslators/Internal/JetDateTimeMemberTranslator.cs index 8dd8484c..05b5ab20 100644 --- a/src/EFCore.Jet/Query/ExpressionTranslators/Internal/JetDateTimeMemberTranslator.cs +++ b/src/EFCore.Jet/Query/ExpressionTranslators/Internal/JetDateTimeMemberTranslator.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; +using System.Linq.Expressions; using System.Reflection; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Diagnostics; @@ -77,8 +78,18 @@ public class JetDateTimeMemberTranslator : IMemberTranslator { nameof(DateTime.Now) => _sqlExpressionFactory.Function("NOW", Array.Empty(), false, new[] { false }, returnType), - nameof(DateTime.UtcNow) => _sqlExpressionFactory.Function("NOW", Array.Empty(), - false, new[] { false }, returnType), + nameof(DateTime.UtcNow) => _sqlExpressionFactory.Function( + "DATEADD", + new SqlExpression[] + { + new SqlConstantExpression(Expression.Constant("n"), null), + new SqlConstantExpression(Expression.Constant(-1 * TimeZoneInfo.Local.BaseUtcOffset.TotalMinutes), null) , + _sqlExpressionFactory.Function("NOW", Array.Empty(), + false, new[] { false }, returnType) + }, + true, + argumentsPropagateNullability: new[] { false, false, true }, + returnType), nameof(DateTime.Today) => _sqlExpressionFactory.Function( "DATEVALUE", new[] diff --git a/src/EFCore.Jet/Storage/Internal/JetDateTimeOffsetTypeMapping.cs b/src/EFCore.Jet/Storage/Internal/JetDateTimeOffsetTypeMapping.cs index bece76a9..cd372008 100644 --- a/src/EFCore.Jet/Storage/Internal/JetDateTimeOffsetTypeMapping.cs +++ b/src/EFCore.Jet/Storage/Internal/JetDateTimeOffsetTypeMapping.cs @@ -37,7 +37,7 @@ protected override void ConfigureParameter(DbParameter parameter) // OLE DB can't handle the DateTimeOffset type. if (parameter.Value is DateTimeOffset dateTimeOffset) { - parameter.Value = dateTimeOffset.UtcDateTime; + parameter.Value = dateTimeOffset.Ticks == 0 ? DateTime.FromOADate(0) : dateTimeOffset.UtcDateTime; parameter.DbType = System.Data.DbType.DateTime; } @@ -50,7 +50,7 @@ protected override string SqlLiteralFormatString protected override string GenerateNonNullSqlLiteral(object value) { if (value is not DateTimeOffset offset) return base.GenerateNonNullSqlLiteral(value); - var dateTime = offset.UtcDateTime; + var dateTime = offset.Ticks == 0 ? DateTime.FromOADate(0) : offset.UtcDateTime; return $"CDATE({string.Format(CultureInfo.InvariantCulture, DateTimeFormatConst, dateTime)})"; } } diff --git a/test/EFCore.Jet.FunctionalTests/BuiltInDataTypesJetTest.cs b/test/EFCore.Jet.FunctionalTests/BuiltInDataTypesJetTest.cs index 30368400..fada859a 100644 --- a/test/EFCore.Jet.FunctionalTests/BuiltInDataTypesJetTest.cs +++ b/test/EFCore.Jet.FunctionalTests/BuiltInDataTypesJetTest.cs @@ -4902,7 +4902,7 @@ private void QueryBuiltInDataTypesTest(EntityEntry source) if (entityType.FindProperty(nameof(BuiltInDataTypes.TestDateTimeOffset)) != null) { - var param7 = new DateTimeOffset(new DateTime(), TimeSpan.FromHours(-8.0)); + var param7 = new DateTimeOffset(new DateTime(), TimeSpan.FromHours(0.0)); Assert.Same( entity, set.Where(e => e.Id == 11 && EF.Property(e, nameof(BuiltInDataTypes.TestDateTimeOffset)) == param7) diff --git a/test/EFCore.Jet.FunctionalTests/Query/GearsOfWarQueryJetTest.cs b/test/EFCore.Jet.FunctionalTests/Query/GearsOfWarQueryJetTest.cs index 13c94534..6fee7906 100644 --- a/test/EFCore.Jet.FunctionalTests/Query/GearsOfWarQueryJetTest.cs +++ b/test/EFCore.Jet.FunctionalTests/Query/GearsOfWarQueryJetTest.cs @@ -2526,9 +2526,11 @@ public override async Task Where_datetimeoffset_now(bool isAsync) await base.Where_datetimeoffset_now(isAsync); AssertSql( - $@"SELECT `m`.`Id`, `m`.`CodeName`, `m`.`Rating`, `m`.`Timeline` + """ +SELECT `m`.`Id`, `m`.`CodeName`, `m`.`Date`, `m`.`Duration`, `m`.`Rating`, `m`.`Time`, `m`.`Timeline` FROM `Missions` AS `m` -WHERE (`m`.`Timeline` <> SYSDATETIMEOFFSET()) OR SYSDATETIMEOFFSET() IS NULL"); +WHERE `m`.`Timeline` <> NOW() +"""); } public override async Task Where_datetimeoffset_utcnow(bool isAsync) @@ -2536,9 +2538,11 @@ public override async Task Where_datetimeoffset_utcnow(bool isAsync) await base.Where_datetimeoffset_utcnow(isAsync); AssertSql( - $@"SELECT `m`.`Id`, `m`.`CodeName`, `m`.`Rating`, `m`.`Timeline` + """ +SELECT `m`.`Id`, `m`.`CodeName`, `m`.`Date`, `m`.`Duration`, `m`.`Rating`, `m`.`Time`, `m`.`Timeline` FROM `Missions` AS `m` -WHERE (`m`.`Timeline` <> CAST(SYSUTCDATETIME() AS datetimeoffset)) OR SYSUTCDATETIME() IS NULL"); +WHERE `m`.`Timeline` <> DATEADD('n', -480.0, NOW()) +"""); } public override async Task Where_datetimeoffset_date_component(bool isAsync) diff --git a/test/EFCore.Jet.FunctionalTests/Query/NorthwindWhereQueryJetTest.cs b/test/EFCore.Jet.FunctionalTests/Query/NorthwindWhereQueryJetTest.cs index bc1a5b13..b50f9f13 100644 --- a/test/EFCore.Jet.FunctionalTests/Query/NorthwindWhereQueryJetTest.cs +++ b/test/EFCore.Jet.FunctionalTests/Query/NorthwindWhereQueryJetTest.cs @@ -795,7 +795,7 @@ public override async Task Where_datetime_utcnow(bool isAsync) SELECT `c`.`CustomerID`, `c`.`Address`, `c`.`City`, `c`.`CompanyName`, `c`.`ContactName`, `c`.`ContactTitle`, `c`.`Country`, `c`.`Fax`, `c`.`Phone`, `c`.`PostalCode`, `c`.`Region` FROM `Customers` AS `c` - WHERE NOW() <> CDATE({AssertSqlHelper.Parameter("@__myDatetime_0")}) + WHERE DATEADD('n', -480.0, NOW()) <> CDATE({AssertSqlHelper.Parameter("@__myDatetime_0")}) """); } @@ -804,12 +804,12 @@ public override async Task Where_datetimeoffset_utcnow(bool async) await base.Where_datetimeoffset_utcnow(async); AssertSql( -""" -@__myDatetimeOffset_0='2015-04-10T00:00:00.0000000-08:00' + """ +@__myDatetimeOffset_0='2015-04-10T08:00:00.0000000Z' (DbType = DateTime) -SELECT [c].[CustomerID], [c].[Address], [c].[City], [c].[CompanyName], [c].[ContactName], [c].[ContactTitle], [c].[Country], [c].[Fax], [c].[Phone], [c].[PostalCode], [c].[Region] -FROM [Customers] AS [c] -WHERE CAST(SYSUTCDATETIME() AS datetimeoffset) <> @__myDatetimeOffset_0 +SELECT `c`.`CustomerID`, `c`.`Address`, `c`.`City`, `c`.`CompanyName`, `c`.`ContactName`, `c`.`ContactTitle`, `c`.`Country`, `c`.`Fax`, `c`.`Phone`, `c`.`PostalCode`, `c`.`Region` +FROM `Customers` AS `c` +WHERE DATEADD('n', -480.0, NOW()) <> @__myDatetimeOffset_0 """); } @@ -935,9 +935,11 @@ public override async Task Where_datetimeoffset_now_component(bool isAsync) await base.Where_datetimeoffset_now_component(isAsync); AssertSql( - $@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate` + """ +SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate` FROM `Orders` AS `o` -WHERE `o`.`OrderDate` = SYSDATETIMEOFFSET()"); +WHERE `o`.`OrderDate` < NOW() +"""); } public override async Task Where_datetimeoffset_utcnow_component(bool isAsync) @@ -945,9 +947,11 @@ public override async Task Where_datetimeoffset_utcnow_component(bool isAsync) await base.Where_datetimeoffset_utcnow_component(isAsync); AssertSql( - $@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate` + """ +SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate` FROM `Orders` AS `o` -WHERE `o`.`OrderDate` = CAST(SYSUTCDATETIME() AS datetimeoffset)"); +WHERE `o`.`OrderDate` <> DATEADD('n', -480.0, NOW()) OR `o`.`OrderDate` IS NULL +"""); } public override async Task Where_simple_reversed(bool isAsync) diff --git a/test/EFCore.Jet.FunctionalTests/Query/TPCGearsOfWarQueryJetTest.cs b/test/EFCore.Jet.FunctionalTests/Query/TPCGearsOfWarQueryJetTest.cs index 87eecf1b..d91a0b07 100644 --- a/test/EFCore.Jet.FunctionalTests/Query/TPCGearsOfWarQueryJetTest.cs +++ b/test/EFCore.Jet.FunctionalTests/Query/TPCGearsOfWarQueryJetTest.cs @@ -3691,10 +3691,10 @@ public override async Task Where_datetimeoffset_now(bool async) await base.Where_datetimeoffset_now(async); AssertSql( -""" -SELECT [m].[Id], [m].[CodeName], [m].[Duration], [m].[Rating], [m].[Timeline] -FROM [Missions] AS [m] -WHERE [m].[Timeline] <> SYSDATETIMEOFFSET() + """ +SELECT `m`.`Id`, `m`.`CodeName`, `m`.`Date`, `m`.`Duration`, `m`.`Rating`, `m`.`Time`, `m`.`Timeline` +FROM `Missions` AS `m` +WHERE `m`.`Timeline` <> NOW() """); } @@ -3703,10 +3703,10 @@ public override async Task Where_datetimeoffset_utcnow(bool async) await base.Where_datetimeoffset_utcnow(async); AssertSql( -""" -SELECT [m].[Id], [m].[CodeName], [m].[Duration], [m].[Rating], [m].[Timeline] -FROM [Missions] AS [m] -WHERE [m].[Timeline] <> CAST(SYSUTCDATETIME() AS datetimeoffset) + """ +SELECT `m`.`Id`, `m`.`CodeName`, `m`.`Date`, `m`.`Duration`, `m`.`Rating`, `m`.`Time`, `m`.`Timeline` +FROM `Missions` AS `m` +WHERE `m`.`Timeline` <> DATEADD('n', -480.0, NOW()) """); } diff --git a/test/EFCore.Jet.FunctionalTests/Query/TPTGearsOfWarQueryJetTest.cs b/test/EFCore.Jet.FunctionalTests/Query/TPTGearsOfWarQueryJetTest.cs index ae681182..18dacf1c 100644 --- a/test/EFCore.Jet.FunctionalTests/Query/TPTGearsOfWarQueryJetTest.cs +++ b/test/EFCore.Jet.FunctionalTests/Query/TPTGearsOfWarQueryJetTest.cs @@ -2942,10 +2942,10 @@ public override async Task Where_datetimeoffset_now(bool async) await base.Where_datetimeoffset_now(async); AssertSql( -""" -SELECT [m].[Id], [m].[CodeName], [m].[Duration], [m].[Rating], [m].[Timeline] -FROM [Missions] AS [m] -WHERE [m].[Timeline] <> SYSDATETIMEOFFSET() + """ +SELECT `m`.`Id`, `m`.`CodeName`, `m`.`Date`, `m`.`Duration`, `m`.`Rating`, `m`.`Time`, `m`.`Timeline` +FROM `Missions` AS `m` +WHERE `m`.`Timeline` <> NOW() """); } @@ -2954,10 +2954,10 @@ public override async Task Where_datetimeoffset_utcnow(bool async) await base.Where_datetimeoffset_utcnow(async); AssertSql( -""" -SELECT [m].[Id], [m].[CodeName], [m].[Duration], [m].[Rating], [m].[Timeline] -FROM [Missions] AS [m] -WHERE [m].[Timeline] <> CAST(SYSUTCDATETIME() AS datetimeoffset) + """ +SELECT `m`.`Id`, `m`.`CodeName`, `m`.`Date`, `m`.`Duration`, `m`.`Rating`, `m`.`Time`, `m`.`Timeline` +FROM `Missions` AS `m` +WHERE `m`.`Timeline` <> DATEADD('n', -480.0, NOW()) """); } From 1c3161f68c3fc7a11b8a4d7f8b7df06f3f0f8176 Mon Sep 17 00:00:00 2001 From: Christopher Jolly Date: Sat, 30 Mar 2024 04:27:02 +0800 Subject: [PATCH 2/3] adjust tests to not have a hard coded utc offset in them --- .../Query/GearsOfWarQueryJetTest.cs | 5 +++-- .../Query/NorthwindWhereQueryJetTest.cs | 13 ++++++++----- .../Query/TPCGearsOfWarQueryJetTest.cs | 5 +++-- .../Query/TPTGearsOfWarQueryJetTest.cs | 5 +++-- 4 files changed, 17 insertions(+), 11 deletions(-) diff --git a/test/EFCore.Jet.FunctionalTests/Query/GearsOfWarQueryJetTest.cs b/test/EFCore.Jet.FunctionalTests/Query/GearsOfWarQueryJetTest.cs index 6fee7906..5d7f2ed6 100644 --- a/test/EFCore.Jet.FunctionalTests/Query/GearsOfWarQueryJetTest.cs +++ b/test/EFCore.Jet.FunctionalTests/Query/GearsOfWarQueryJetTest.cs @@ -2535,13 +2535,14 @@ public override async Task Where_datetimeoffset_now(bool isAsync) public override async Task Where_datetimeoffset_utcnow(bool isAsync) { + var dtoffset = -1 * TimeZoneInfo.Local.BaseUtcOffset.TotalMinutes; await base.Where_datetimeoffset_utcnow(isAsync); AssertSql( - """ + $""" SELECT `m`.`Id`, `m`.`CodeName`, `m`.`Date`, `m`.`Duration`, `m`.`Rating`, `m`.`Time`, `m`.`Timeline` FROM `Missions` AS `m` -WHERE `m`.`Timeline` <> DATEADD('n', -480.0, NOW()) +WHERE `m`.`Timeline` <> DATEADD('n', {dtoffset}.0, NOW()) """); } diff --git a/test/EFCore.Jet.FunctionalTests/Query/NorthwindWhereQueryJetTest.cs b/test/EFCore.Jet.FunctionalTests/Query/NorthwindWhereQueryJetTest.cs index b50f9f13..a3370a70 100644 --- a/test/EFCore.Jet.FunctionalTests/Query/NorthwindWhereQueryJetTest.cs +++ b/test/EFCore.Jet.FunctionalTests/Query/NorthwindWhereQueryJetTest.cs @@ -787,6 +787,7 @@ WHERE NOW() <> CDATE({AssertSqlHelper.Parameter("@__myDatetime_0")}) public override async Task Where_datetime_utcnow(bool isAsync) { + var dtoffset = -1 * TimeZoneInfo.Local.BaseUtcOffset.TotalMinutes; await base.Where_datetime_utcnow(isAsync); AssertSql( @@ -795,21 +796,22 @@ public override async Task Where_datetime_utcnow(bool isAsync) SELECT `c`.`CustomerID`, `c`.`Address`, `c`.`City`, `c`.`CompanyName`, `c`.`ContactName`, `c`.`ContactTitle`, `c`.`Country`, `c`.`Fax`, `c`.`Phone`, `c`.`PostalCode`, `c`.`Region` FROM `Customers` AS `c` - WHERE DATEADD('n', -480.0, NOW()) <> CDATE({AssertSqlHelper.Parameter("@__myDatetime_0")}) + WHERE DATEADD('n', {dtoffset}.0, NOW()) <> CDATE({AssertSqlHelper.Parameter("@__myDatetime_0")}) """); } public override async Task Where_datetimeoffset_utcnow(bool async) { + var dtoffset = -1 * TimeZoneInfo.Local.BaseUtcOffset.TotalMinutes; await base.Where_datetimeoffset_utcnow(async); AssertSql( - """ + $""" @__myDatetimeOffset_0='2015-04-10T08:00:00.0000000Z' (DbType = DateTime) SELECT `c`.`CustomerID`, `c`.`Address`, `c`.`City`, `c`.`CompanyName`, `c`.`ContactName`, `c`.`ContactTitle`, `c`.`Country`, `c`.`Fax`, `c`.`Phone`, `c`.`PostalCode`, `c`.`Region` FROM `Customers` AS `c` -WHERE DATEADD('n', -480.0, NOW()) <> @__myDatetimeOffset_0 +WHERE DATEADD('n', {dtoffset}.0, NOW()) <> @__myDatetimeOffset_0 """); } @@ -944,13 +946,14 @@ public override async Task Where_datetimeoffset_now_component(bool isAsync) public override async Task Where_datetimeoffset_utcnow_component(bool isAsync) { + var dtoffset = -1 * TimeZoneInfo.Local.BaseUtcOffset.TotalMinutes; await base.Where_datetimeoffset_utcnow_component(isAsync); AssertSql( - """ + $""" SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate` FROM `Orders` AS `o` -WHERE `o`.`OrderDate` <> DATEADD('n', -480.0, NOW()) OR `o`.`OrderDate` IS NULL +WHERE `o`.`OrderDate` <> DATEADD('n', {dtoffset}.0, NOW()) OR `o`.`OrderDate` IS NULL """); } diff --git a/test/EFCore.Jet.FunctionalTests/Query/TPCGearsOfWarQueryJetTest.cs b/test/EFCore.Jet.FunctionalTests/Query/TPCGearsOfWarQueryJetTest.cs index d91a0b07..4483042c 100644 --- a/test/EFCore.Jet.FunctionalTests/Query/TPCGearsOfWarQueryJetTest.cs +++ b/test/EFCore.Jet.FunctionalTests/Query/TPCGearsOfWarQueryJetTest.cs @@ -3700,13 +3700,14 @@ public override async Task Where_datetimeoffset_now(bool async) public override async Task Where_datetimeoffset_utcnow(bool async) { + var dtoffset = -1 * TimeZoneInfo.Local.BaseUtcOffset.TotalMinutes; await base.Where_datetimeoffset_utcnow(async); AssertSql( - """ + $""" SELECT `m`.`Id`, `m`.`CodeName`, `m`.`Date`, `m`.`Duration`, `m`.`Rating`, `m`.`Time`, `m`.`Timeline` FROM `Missions` AS `m` -WHERE `m`.`Timeline` <> DATEADD('n', -480.0, NOW()) +WHERE `m`.`Timeline` <> DATEADD('n', {dtoffset}.0, NOW()) """); } diff --git a/test/EFCore.Jet.FunctionalTests/Query/TPTGearsOfWarQueryJetTest.cs b/test/EFCore.Jet.FunctionalTests/Query/TPTGearsOfWarQueryJetTest.cs index 18dacf1c..fc1163d0 100644 --- a/test/EFCore.Jet.FunctionalTests/Query/TPTGearsOfWarQueryJetTest.cs +++ b/test/EFCore.Jet.FunctionalTests/Query/TPTGearsOfWarQueryJetTest.cs @@ -2951,13 +2951,14 @@ public override async Task Where_datetimeoffset_now(bool async) public override async Task Where_datetimeoffset_utcnow(bool async) { + var dtoffset = -1 * TimeZoneInfo.Local.BaseUtcOffset.TotalMinutes; await base.Where_datetimeoffset_utcnow(async); AssertSql( - """ + $""" SELECT `m`.`Id`, `m`.`CodeName`, `m`.`Date`, `m`.`Duration`, `m`.`Rating`, `m`.`Time`, `m`.`Timeline` FROM `Missions` AS `m` -WHERE `m`.`Timeline` <> DATEADD('n', -480.0, NOW()) +WHERE `m`.`Timeline` <> DATEADD('n', {dtoffset}.0, NOW()) """); } From eb45a0f946f341d7cd6dde4b65907b69e9526b30 Mon Sep 17 00:00:00 2001 From: github-actions Date: Fri, 29 Mar 2024 20:45:41 +0000 Subject: [PATCH 3/3] [GitHub Actions] Update green tests. --- .../GreenTests/ace_2010_odbc_x86.txt | 5 +++++ .../GreenTests/ace_2010_oledb_x86.txt | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/test/EFCore.Jet.FunctionalTests/GreenTests/ace_2010_odbc_x86.txt b/test/EFCore.Jet.FunctionalTests/GreenTests/ace_2010_odbc_x86.txt index 1bdf5e9b..0e15f521 100644 --- a/test/EFCore.Jet.FunctionalTests/GreenTests/ace_2010_odbc_x86.txt +++ b/test/EFCore.Jet.FunctionalTests/GreenTests/ace_2010_odbc_x86.txt @@ -54,6 +54,7 @@ EntityFrameworkCore.Jet.FunctionalTests.BuiltInDataTypesJetTest.Can_insert_query EntityFrameworkCore.Jet.FunctionalTests.BuiltInDataTypesJetTest.Can_perform_query_with_ansi_strings_test EntityFrameworkCore.Jet.FunctionalTests.BuiltInDataTypesJetTest.Can_perform_query_with_max_length EntityFrameworkCore.Jet.FunctionalTests.BuiltInDataTypesJetTest.Can_query_using_any_mapped_data_types_with_nulls +EntityFrameworkCore.Jet.FunctionalTests.BuiltInDataTypesJetTest.Can_query_using_any_nullable_data_type_as_literal EntityFrameworkCore.Jet.FunctionalTests.BuiltInDataTypesJetTest.Can_query_using_DateDiffHour_using_TimeSpan EntityFrameworkCore.Jet.FunctionalTests.BuiltInDataTypesJetTest.Can_query_using_DateDiffMinute_using_TimeSpan EntityFrameworkCore.Jet.FunctionalTests.BuiltInDataTypesJetTest.Can_query_using_DateDiffSecond_using_TimeSpan @@ -14470,6 +14471,10 @@ EntityFrameworkCore.Jet.FunctionalTests.Query.NorthwindWhereQueryJetTest.Where_d EntityFrameworkCore.Jet.FunctionalTests.Query.NorthwindWhereQueryJetTest.Where_datetime_utcnow(isAsync: True) EntityFrameworkCore.Jet.FunctionalTests.Query.NorthwindWhereQueryJetTest.Where_datetime_year_component(isAsync: False) EntityFrameworkCore.Jet.FunctionalTests.Query.NorthwindWhereQueryJetTest.Where_datetime_year_component(isAsync: True) +EntityFrameworkCore.Jet.FunctionalTests.Query.NorthwindWhereQueryJetTest.Where_datetimeoffset_now_component(isAsync: False) +EntityFrameworkCore.Jet.FunctionalTests.Query.NorthwindWhereQueryJetTest.Where_datetimeoffset_now_component(isAsync: True) +EntityFrameworkCore.Jet.FunctionalTests.Query.NorthwindWhereQueryJetTest.Where_datetimeoffset_utcnow_component(isAsync: False) +EntityFrameworkCore.Jet.FunctionalTests.Query.NorthwindWhereQueryJetTest.Where_datetimeoffset_utcnow_component(isAsync: True) EntityFrameworkCore.Jet.FunctionalTests.Query.NorthwindWhereQueryJetTest.Where_de_morgan_and_optimized(isAsync: False) EntityFrameworkCore.Jet.FunctionalTests.Query.NorthwindWhereQueryJetTest.Where_de_morgan_and_optimized(isAsync: True) EntityFrameworkCore.Jet.FunctionalTests.Query.NorthwindWhereQueryJetTest.Where_de_morgan_or_optimized(isAsync: False) diff --git a/test/EFCore.Jet.FunctionalTests/GreenTests/ace_2010_oledb_x86.txt b/test/EFCore.Jet.FunctionalTests/GreenTests/ace_2010_oledb_x86.txt index bfa8c6e0..db6db62d 100644 --- a/test/EFCore.Jet.FunctionalTests/GreenTests/ace_2010_oledb_x86.txt +++ b/test/EFCore.Jet.FunctionalTests/GreenTests/ace_2010_oledb_x86.txt @@ -11072,8 +11072,12 @@ EntityFrameworkCore.Jet.FunctionalTests.Query.GearsOfWarQueryJetTest.Where_datet EntityFrameworkCore.Jet.FunctionalTests.Query.GearsOfWarQueryJetTest.Where_datetimeoffset_minute_component(isAsync: True) EntityFrameworkCore.Jet.FunctionalTests.Query.GearsOfWarQueryJetTest.Where_datetimeoffset_month_component(isAsync: False) EntityFrameworkCore.Jet.FunctionalTests.Query.GearsOfWarQueryJetTest.Where_datetimeoffset_month_component(isAsync: True) +EntityFrameworkCore.Jet.FunctionalTests.Query.GearsOfWarQueryJetTest.Where_datetimeoffset_now(isAsync: False) +EntityFrameworkCore.Jet.FunctionalTests.Query.GearsOfWarQueryJetTest.Where_datetimeoffset_now(isAsync: True) EntityFrameworkCore.Jet.FunctionalTests.Query.GearsOfWarQueryJetTest.Where_datetimeoffset_second_component(isAsync: False) EntityFrameworkCore.Jet.FunctionalTests.Query.GearsOfWarQueryJetTest.Where_datetimeoffset_second_component(isAsync: True) +EntityFrameworkCore.Jet.FunctionalTests.Query.GearsOfWarQueryJetTest.Where_datetimeoffset_utcnow(isAsync: False) +EntityFrameworkCore.Jet.FunctionalTests.Query.GearsOfWarQueryJetTest.Where_datetimeoffset_utcnow(isAsync: True) EntityFrameworkCore.Jet.FunctionalTests.Query.GearsOfWarQueryJetTest.Where_datetimeoffset_year_component(isAsync: False) EntityFrameworkCore.Jet.FunctionalTests.Query.GearsOfWarQueryJetTest.Where_datetimeoffset_year_component(isAsync: True) EntityFrameworkCore.Jet.FunctionalTests.Query.GearsOfWarQueryJetTest.Where_enum_has_flag_subquery_client_eval(isAsync: False) @@ -15664,6 +15668,12 @@ EntityFrameworkCore.Jet.FunctionalTests.Query.NorthwindWhereQueryJetTest.Where_d EntityFrameworkCore.Jet.FunctionalTests.Query.NorthwindWhereQueryJetTest.Where_datetime_utcnow(isAsync: True) EntityFrameworkCore.Jet.FunctionalTests.Query.NorthwindWhereQueryJetTest.Where_datetime_year_component(isAsync: False) EntityFrameworkCore.Jet.FunctionalTests.Query.NorthwindWhereQueryJetTest.Where_datetime_year_component(isAsync: True) +EntityFrameworkCore.Jet.FunctionalTests.Query.NorthwindWhereQueryJetTest.Where_datetimeoffset_now_component(isAsync: False) +EntityFrameworkCore.Jet.FunctionalTests.Query.NorthwindWhereQueryJetTest.Where_datetimeoffset_now_component(isAsync: True) +EntityFrameworkCore.Jet.FunctionalTests.Query.NorthwindWhereQueryJetTest.Where_datetimeoffset_utcnow_component(isAsync: False) +EntityFrameworkCore.Jet.FunctionalTests.Query.NorthwindWhereQueryJetTest.Where_datetimeoffset_utcnow_component(isAsync: True) +EntityFrameworkCore.Jet.FunctionalTests.Query.NorthwindWhereQueryJetTest.Where_datetimeoffset_utcnow(async: False) +EntityFrameworkCore.Jet.FunctionalTests.Query.NorthwindWhereQueryJetTest.Where_datetimeoffset_utcnow(async: True) EntityFrameworkCore.Jet.FunctionalTests.Query.NorthwindWhereQueryJetTest.Where_de_morgan_and_optimized(isAsync: False) EntityFrameworkCore.Jet.FunctionalTests.Query.NorthwindWhereQueryJetTest.Where_de_morgan_and_optimized(isAsync: True) EntityFrameworkCore.Jet.FunctionalTests.Query.NorthwindWhereQueryJetTest.Where_de_morgan_or_optimized(isAsync: False) @@ -17972,8 +17982,12 @@ EntityFrameworkCore.Jet.FunctionalTests.Query.TPCGearsOfWarQueryJetTest.Where_da EntityFrameworkCore.Jet.FunctionalTests.Query.TPCGearsOfWarQueryJetTest.Where_datetimeoffset_minute_component(async: True) EntityFrameworkCore.Jet.FunctionalTests.Query.TPCGearsOfWarQueryJetTest.Where_datetimeoffset_month_component(async: False) EntityFrameworkCore.Jet.FunctionalTests.Query.TPCGearsOfWarQueryJetTest.Where_datetimeoffset_month_component(async: True) +EntityFrameworkCore.Jet.FunctionalTests.Query.TPCGearsOfWarQueryJetTest.Where_datetimeoffset_now(async: False) +EntityFrameworkCore.Jet.FunctionalTests.Query.TPCGearsOfWarQueryJetTest.Where_datetimeoffset_now(async: True) EntityFrameworkCore.Jet.FunctionalTests.Query.TPCGearsOfWarQueryJetTest.Where_datetimeoffset_second_component(async: False) EntityFrameworkCore.Jet.FunctionalTests.Query.TPCGearsOfWarQueryJetTest.Where_datetimeoffset_second_component(async: True) +EntityFrameworkCore.Jet.FunctionalTests.Query.TPCGearsOfWarQueryJetTest.Where_datetimeoffset_utcnow(async: False) +EntityFrameworkCore.Jet.FunctionalTests.Query.TPCGearsOfWarQueryJetTest.Where_datetimeoffset_utcnow(async: True) EntityFrameworkCore.Jet.FunctionalTests.Query.TPCGearsOfWarQueryJetTest.Where_datetimeoffset_year_component(async: False) EntityFrameworkCore.Jet.FunctionalTests.Query.TPCGearsOfWarQueryJetTest.Where_datetimeoffset_year_component(async: True) EntityFrameworkCore.Jet.FunctionalTests.Query.TPCGearsOfWarQueryJetTest.Where_enum_has_flag_subquery_client_eval(async: False) @@ -19771,8 +19785,12 @@ EntityFrameworkCore.Jet.FunctionalTests.Query.TPTGearsOfWarQueryJetTest.Where_da EntityFrameworkCore.Jet.FunctionalTests.Query.TPTGearsOfWarQueryJetTest.Where_datetimeoffset_minute_component(async: True) EntityFrameworkCore.Jet.FunctionalTests.Query.TPTGearsOfWarQueryJetTest.Where_datetimeoffset_month_component(async: False) EntityFrameworkCore.Jet.FunctionalTests.Query.TPTGearsOfWarQueryJetTest.Where_datetimeoffset_month_component(async: True) +EntityFrameworkCore.Jet.FunctionalTests.Query.TPTGearsOfWarQueryJetTest.Where_datetimeoffset_now(async: False) +EntityFrameworkCore.Jet.FunctionalTests.Query.TPTGearsOfWarQueryJetTest.Where_datetimeoffset_now(async: True) EntityFrameworkCore.Jet.FunctionalTests.Query.TPTGearsOfWarQueryJetTest.Where_datetimeoffset_second_component(async: False) EntityFrameworkCore.Jet.FunctionalTests.Query.TPTGearsOfWarQueryJetTest.Where_datetimeoffset_second_component(async: True) +EntityFrameworkCore.Jet.FunctionalTests.Query.TPTGearsOfWarQueryJetTest.Where_datetimeoffset_utcnow(async: False) +EntityFrameworkCore.Jet.FunctionalTests.Query.TPTGearsOfWarQueryJetTest.Where_datetimeoffset_utcnow(async: True) EntityFrameworkCore.Jet.FunctionalTests.Query.TPTGearsOfWarQueryJetTest.Where_datetimeoffset_year_component(async: False) EntityFrameworkCore.Jet.FunctionalTests.Query.TPTGearsOfWarQueryJetTest.Where_datetimeoffset_year_component(async: True) EntityFrameworkCore.Jet.FunctionalTests.Query.TPTGearsOfWarQueryJetTest.Where_enum_has_flag_subquery_client_eval(async: False)