Skip to content

Commit a173d83

Browse files
committed
Merge branch 'master' into master-firebird4-support
2 parents 48e030c + 78554a1 commit a173d83

File tree

653 files changed

+15451
-11979
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

653 files changed

+15451
-11979
lines changed

ChangeLog/6.0.8_Z_Final.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
[main] Resolved DateTimeOffset reading issues for certain queries with JOIN
2+
[main] Improved compiled queries work with entity parameters
3+
[main] Coalesce operator with local Entity/Structure instance in it is prohibited to prevent wrong query results
4+
[main] Ternary operator with local Entity/Structure instance in it is prohibited to prevent wrong query results
5+
[bulkoperations] Ressuracted check for transaction to prevent unrollbackable changes

ChangeLog/7.0.1_Z_Final.txt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
[main] Changed boolean expression translation to have better index utilization (rebuild of filtered indexes required)
2+
[main] Introduced access to DbConnection by using IDbConnectionAccessor implementers
3+
[main] Much faster query cache in multithreaded workloads
4+
[main] Addressed issue appeared in 7.0.0 when certain items of prefetch graph weren't fetched
5+
[main] Fixed certain issues caused by unnecessary check for zombie transactions on commit
6+
[main] Improved silent cleanup detection when new and removed Entities happen to conflict by table
7+
[main] Improved speed and memory usage of Session creation
8+
[main] Overall performance improvements
9+
[web] Introduced better way of integration with ASP.NET

ChangeLog/7.0.1_dev.txt

Whitespace-only changes.

ChangeLog/7.1.0-dev.txt

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
[main] ThreadSafeCache is removed
2+
[main] INamedValueCollection and its the only implementer NamedValueCollection are removed
3+
[main] ICollectionChangeNotifier, CollectionChangeNotifierEventArgs are removed
4+
[main] ArrayUtils class is removed
5+
[main] ISet<T> interface is removed and all usages are replaced with .Net ISet<T>
6+
[main] Set<T>, SetSlim<T>, ReadOnlySet<T> collections and abstract SetBase are removed
7+
[main] ReadOnlyList<T> is removed
8+
[main] ReadOnlyCollection<T>
9+
[main] ReadOnlyDictionary<TKey, TValue> is removed
10+
[main] ThreadSafeDictionary is removed
11+
[main] ThreadSafeList struct is removed
12+
[main] TypeClassifier collection is removed
13+
[main] LazyDictionary is removed
14+
[main] FlagRegistry is removed
15+
[main] EnumerableUtils<T> is removed
16+
[main] DifferentialDictionary and DifferentialDictionaryDifference are removed
17+
[main] CollectionBase<T> is removed
18+
[main] StringExtensions.Join() methods are removed
19+
[main] CollectionExtensions.ReverseList() method is removed
20+
[main] ThreadSafeCached type is removed
21+
[main] Triplet<T> and Triplet<TFirst,TSecond,TThird> are removed
22+
[main] Introduced IQueryable<T>.Tag() extensions allowing to add tags to result SQL statement
23+
[main] Introduced Session.Tag() method for being able to tag queries within returned TagScope
24+
[main] Domain.TagsEnabled is introduced as faster alternative to DomainConfiguration.TagLocation!=TagLocation.Nowhere check
25+
[main] ReadOnlyHashSet<T> now implements .Net ISet and IReadOnlySet instead of removed ISet and IReadOnly
26+
[main] NativeTypeClassifier collection now inherits ClassifiedCollection directly
27+
[main] FlagCollection.Keys return type has changed from removed ReadOnlyList<T> to .Net IReadOnlyList<T>
28+
[main] CollectionBaseSlim<T> no longer implements IList<T> and ICollection but implements ICollection<T> and IReadOnlyList<T>
29+
[main] AggregateException.Exceptions property changed its return type to IReadOnlyList<Exception>
30+
[main] AggregateException constuctors get array of exceptions instead of IEnumerable<Exception>
31+
[main] CopyDataHint.CopiedColumns property changed its return type to IReadOnlyList<Pair<string>>
32+
[main] DateHint.Identitites property changed its return type to IReadOnlyList<IdentityPair>
33+
[main] UpdateDataHint.UpdateParameter property changed its return type to IReadOnlyList<Pair<string, object>>
34+
[main] IUpgrader methods now return IReadOnlyList<NodeAction>
35+
[main] PropertyAccessorDictionary has changed API due to change its base type and interfaces
36+
[main] FullTextIndexDefCollection changed its base type to CollectionBaseSlim<FullTextIndexDef>
37+
[main] HierarchyDefCollection changed its base type to CollectionBaseSlim<HierarchyDef>
38+
[main] HierarchyDefCollection and TypeDefCollection changed events set due to change of base type
39+
[main] SessionConfiguration collection API changed due to changes in base type CollectionBaseSlim<T>
40+
[main] IGenerationTerm.Terms changed its return type to IReadOnlyList<string>
41+
[main] IProximityTerm.Terms changed its return type to IReadOnlyList<IProximityOperand>
42+
[main] IOperation properties (PrecedingOperations, FollowingOperations, UndoOperations, IdentifiedEntities) changed return type
43+
[main] HierarchyInfo.Types changed its return type to IReadOnlyList<TypeInfo>
44+
[main] IndexInfo.Columns changed its return type to IReadOnlyList<ColumnInfo>
45+
[main] KeyInfo's Fields and Columns properties changed to ReadOnlyList<FieldInfo> and IReadOnlyList<ColumnInfo> respectively
46+
[main] TypeIndexInfoCollection.RealPrimaryIndexes property changed its return type to IReadOnlyList<IndexInfo>
47+
[main] TypeIndexInfoCollection.GetIndexesContainingAllData() method changed its return type to IReadOnlyList<IndexInfo>
48+
[main] TypeInfo members that returned IList<T> changed return type to IReadOnlyList<TypeInfo>
49+
[main] PersistRequestBuilderContext.AffectedIndexes changed return type to IReadOnlyList<IndexInfo>
50+
[main] QueryRowFilterParameterBinding.RowTypeMapping changed return type to IReadOnlyList<TypeMapping>
51+
[main] ProviderInfo.SupportedTypes changed return type to IReadOnlySet<Type>
52+
[main] SessionHandler.Prefetch/PrefetchAsync changed type of one of incoming parameters from IList<T> to IReadOnlyList<T>
53+
[main] ContainsTableProvider.TargetColumns changed return type to IReadOnlyList<FullTextColumnInfo>
54+
[main] ColumnCollection is no longer inherited from ReadOnlyList<Column> but implements IReadOnlyList<Column>
55+
[main] ColumnGroupCollection is no longer inherited from ReadOnlyCollection<Column> but implements IReadOnlyList<ColumnGroup>
56+
[main] ChangeFieldTypeHint.AffectedColumns changed return type to IReadOnlyList<string>
57+
[main] RemoveFieldHint.AffectedColumns changed return type to IReadOnlyList<string>
58+
[main] RemoveTypeHint.AffectedTables changed return type to IReadOnlyList<string>
59+
[main] SchemaComparisonResult.UnsafeActions changed return type to IReadOnlyList<NodeAction>
60+
[main] UpgradeContext.Hints changed return type to ISet<UpgradeHint>
61+
[main] UpgradeContext.Modules changed return type to IReadOnlyList<IModule>
62+
[main] UpgradeContext.OrderedUpgradeHandlers changed return type to IReadOnlyList<IUpgradeHandler>
63+
[main] UpgradeContext.UpgradeHandlers changed return type to IReadOnlyDictionary<Assembly, IUpgradeHandler>
64+
[main] UpgradeHandler.AddUpgradeHints() and .AddAutoHints() now take ISet<T> from .Net instead of ORM's ISet<T>
65+
[main] KeyMapping.Map changed type to IReadOnlyDictionary<Key, Key>
66+
[main] InterfaceMapping's properties of ReadOnlyList<T> type changed the type to IReadOnlyList<T>
67+
[main] Node's IncomingConnections and OutgoingConnections properties changed types to IReadOnlyList<NodeConnection<TNodeItem, TConnectionItem>>
68+
[main] CompositePreCompiler.Items became readonly field and changed its type to IReadOnlyList<IPreCompiler>
69+
[main] SqlCompilerConfiguration's SchemaMapping and DatabaseMapping changed return types to IReadOnlyDictionary<string, string>
70+
[main] TypeMappingRegistry.Mappings and .ReverseMappings changed return types to IReadOnlyDictionary<TKey, TValue>
71+
[sqlserver] Microsoft.Data.SqlClient is updated to verson 4.0.0

Containers/do-sqlserver2019

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
FROM mcr.microsoft.com/mssql/server:2019-CU12-ubuntu-20.04
2+
USER root
3+
RUN apt-get -y update && \
4+
apt-get install -yq curl apt-transport-https && \
5+
apt-get install -y gnupg2 && \
6+
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - && \
7+
curl https://packages.microsoft.com/config/ubuntu/20.04/mssql-server-2019.list | tee /etc/apt/sources.list.d/mssql-server.list && \
8+
apt-get update && \
9+
apt-get install -y mssql-server-fts && \
10+
apt-get clean && \
11+
rm -rf /var/lib/apt/lists
12+
USER mssql

Directory.Build.props

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,15 @@
3232
<DoGeneratePackage Condition="$(MSBuildProjectName) == 'Xtensive.Orm.Manual'">false</DoGeneratePackage>
3333
<DoGeneratePackage Condition="$(MSBuildProjectName) == 'TestCommon'">false</DoGeneratePackage>
3434
<DoGeneratePackage Condition="$(MSBuildProjectName.Contains('Tests')) == 'true'">false</DoGeneratePackage>
35+
36+
<!-- Disable "BinaryFormatter is obsolete" warnings for test projects -->
37+
<NoWarn Condition="$(MSBuildProjectName.Contains('Tests')) == 'true'">$(NoWarn);SYSLIB0011</NoWarn>
3538
</PropertyGroup>
3639

3740
<PropertyGroup>
3841
<NoLogo>true</NoLogo>
3942
<SuppressNETCoreSdkPreviewMessage>true</SuppressNETCoreSdkPreviewMessage>
40-
<TargetFramework>netcoreapp3.1</TargetFramework>
43+
<TargetFramework>net5.0</TargetFramework>
4144
<LangVersion>9.0</LangVersion>
4245
<SolutionDir Condition="$(SolutionDir) == ''">$([MSBuild]::EnsureTrailingSlash(
4346
$([MSBuild]::GetDirectoryNameOfFileAbove('$(MSBuildThisFileDirectory)', 'Orm.sln'))))</SolutionDir>

Extensions/TestCommon/TestCommon.csproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@
88
</PropertyGroup>
99
<Import Project="$(SolutionDir)MSBuild\DataObjects.Net.InternalBuild.targets" />
1010
<ItemGroup>
11-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.9.2" />
12-
<PackageReference Include="NUnit" Version="3.12.0" />
13-
<PackageReference Include="NUnit3TestAdapter" Version="3.15.1" />
14-
<PackageReference Include="System.Configuration.ConfigurationManager" Version="4.7.0" />
11+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.0.0" />
12+
<PackageReference Include="NUnit" Version="3.13.2" />
13+
<PackageReference Include="NUnit3TestAdapter" Version="4.2.0" />
14+
<PackageReference Include="System.Configuration.ConfigurationManager" Version="5.0.0" />
1515
</ItemGroup>
1616
<ItemGroup>
1717
<ProjectReference Include="..\..\Orm\Xtensive.Orm.Tests.Framework\Xtensive.Orm.Tests.Framework.csproj" />

Extensions/Xtensive.Orm.BulkOperations.Tests/Xtensive.Orm.BulkOperations.Tests.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
</PropertyGroup>
55
<Import Project="$(SolutionDir)MSBuild\DataObjects.Net.InternalBuild.targets" />
66
<ItemGroup>
7-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.9.2" />
8-
<PackageReference Include="NUnit" Version="3.12.0" />
9-
<PackageReference Include="NUnit3TestAdapter" Version="3.15.1" />
7+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.0.0" />
8+
<PackageReference Include="NUnit" Version="3.13.2" />
9+
<PackageReference Include="NUnit3TestAdapter" Version="4.2.0" />
1010
</ItemGroup>
1111
<ItemGroup>
1212
<ProjectReference Include="..\..\Orm\Xtensive.Orm.Tests.Framework\Xtensive.Orm.Tests.Framework.csproj" />

Extensions/Xtensive.Orm.BulkOperations/Internals/BaseSqlVisitor.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -522,6 +522,10 @@ public virtual void Visit(SqlFragment node)
522522
VisitInternal(node.Expression);
523523
}
524524

525+
public virtual void Visit(SqlComment node)
526+
{
527+
}
528+
525529
#region Non-public methods
526530

527531
private void VisitInternal(ISqlNode node)

Extensions/Xtensive.Orm.BulkOperations/Internals/ExpressionExtensions.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright (C) 2019-2020 Xtensive LLC.
1+
// Copyright (C) 2019-2020 Xtensive LLC.
22
// This code is distributed under MIT license terms.
33
// See the License.txt file in the project root for more information.
44

@@ -29,7 +29,7 @@ public static bool IsContainsQuery(this Expression expression)
2929
internal static object Invoke(this Expression expression)
3030
{
3131
return FastExpression.Lambda(
32-
WellKnownMembers.FuncOfTResultType.MakeGenericType(expression.Type), expression).Compile().DynamicInvoke();
32+
WellKnownMembers.FuncOfTResultType.CachedMakeGenericType(expression.Type), expression).Compile().DynamicInvoke();
3333
}
3434

3535
internal static Expression Visit<T>(this Expression exp, Func<T, Expression> visitor) where T : Expression

0 commit comments

Comments
 (0)