Skip to content

Conversation

@okramarenko
Copy link
Collaborator

No description provided.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request upgrades the Entity Framework Core SingleStore provider from version 8.0.0 to 8.0.1. This is a servicing release containing bug fixes, test improvements, and infrastructure updates.

Changes:

  • Updated EF Core dependencies from 8.0.0 to 8.0.1
  • Fixed a MySQL bug related to ORDER BY (SELECT 1) that caused incorrect query results
  • Improved AUTO_INCREMENT column handling in migrations to prevent SQL errors
  • Enhanced test infrastructure with custom test ordering and discovery capabilities

Reviewed changes

Copilot reviewed 53 out of 53 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
Version.props Updated version from 8.0.0 to 8.0.1 and set pre-release label to "servicing"
Dependencies.targets Updated EF Core and Microsoft.* package dependencies to 8.0.1
dotnet-tools.json Updated dotnet-ef tool to 8.0.1
README.md Added 8.0.1 release to schedule with February 2026 date
src/EFCore.SingleStore/Query/ExpressionVisitors/Internal/SingleStoreQuerySqlGenerator.cs Fixed MySQL bug by outputting 1 instead of (SELECT 1) in ORDER BY clauses
src/EFCore.SingleStore/Migrations/SingleStoreMigrationsSqlGenerator.cs Fixed AUTO_INCREMENT migration issue by merging column and primary key operations
src/EFCore.SingleStore/Metadata/Conventions/* Added new conventions for value generation strategy and runtime model optimization
src/EFCore.SingleStore/Extensions/* Improved value generation strategy handling and added runtime model guards
src/EFCore.SingleStore/Infrastructure/SingleStoreServerVersion.cs Updated latest supported server version to 9.0.0
src/EFCore.SingleStore/Infrastructure/ServerVersionSupport.cs Enabled ExceptIntercept and ExceptInterceptPrecedence support
test/EFCore.SingleStore.FunctionalTests/* Enhanced test framework with custom ordering, discovery, and debug services
tools/QueryBaselineUpdater/Program.cs Refactored to support multiple test files and partial test classes

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.


if (notFound.Any())
{
Console.WriteLine("The following chunks where not found:");
Copy link

Copilot AI Jan 15, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Corrected spelling of 'where' to 'were'.

Copilot uses AI. Check for mistakes.
// Used to generate a compiled model. The compiled model is only used at app runtime and not for design-time purposes.
// Therefore, all annotations that are related to design-time concerns (i.e. databases, tables or columns) are superfluous and should be
// removed.
// TOOD: Check behavior for `ValueGenerationStrategy`, `LegacyValueGeneratedOnAdd` and `LegacyValueGeneratedOnAddOrUpdate`.
Copy link

Copilot AI Jan 15, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Corrected spelling of 'TOOD' to 'TODO'.

Suggested change
// TOOD: Check behavior for `ValueGenerationStrategy`, `LegacyValueGeneratedOnAdd` and `LegacyValueGeneratedOnAddOrUpdate`.
// TODO: Check behavior for `ValueGenerationStrategy`, `LegacyValueGeneratedOnAdd` and `LegacyValueGeneratedOnAddOrUpdate`.

Copilot uses AI. Check for mistakes.
{
SingleStoreValueGenerationStrategy? strategy = null;
var declaringTable = property.GetMappedStoreObjects(StoreObjectType.Table).FirstOrDefault();
if (declaringTable.Name != null!)
Copy link

Copilot AI Jan 15, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The null-forgiving operator ! is used after a null check, which creates confusing logic. This line checks if declaringTable.Name is not null, but then immediately uses the null-forgiving operator. Either remove the ! or restructure the condition for clarity.

Copilot uses AI. Check for mistakes.
Comment on lines +98 to 104
foreach (var annotation in filteredOperation.GetAnnotations().ToList())
{
if (IsFullText(operation))
if (annotation.Name.StartsWith(InternalAnnotationPrefix))
{
var createTableOperation = (CreateTableOperation)operations.Single(o =>
(o is CreateTableOperation createTableOperation && createTableOperation.Name == createIndexOperation.Table));

try
{
createTableOperation.AddAnnotation(SingleStoreAnnotationNames.FullTextIndex, createIndexOperation.Columns);
}
catch (InvalidOperationException)
{
throw new InvalidOperationException("Feature 'more than one FULLTEXT KEY' is not supported by SingleStore Distributed.");
}
filteredOperation.RemoveAnnotation(annotation.Name);
}
}
Copy link

Copilot AI Jan 15, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This foreach loop implicitly filters its target sequence - consider filtering the sequence explicitly using '.Where(...)'.

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants