Skip to content

Commit 192b829

Browse files
committed
Merge branch 'master' into master-date-and-time-support
# Conflicts: # Orm/Xtensive.Orm.Tests/Upgrade/FullText/DomainUpgradeFullTextTest.cs # Orm/Xtensive.Orm/Orm/Providers/Expressions/ExpressionProcessor.cs # Orm/Xtensive.Orm/Sql/Info/DataTypeCollection.cs
2 parents fe72637 + bb43189 commit 192b829

86 files changed

Lines changed: 1409 additions & 793 deletions

File tree

Some content is hidden

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

ChangeLog/6.0.11_Z_Final.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[main] Added an option to remove cached queries of removing storage node along with the node, default behavior remains the same
2+
[postgresql] Dedicated exception when the extracting schema doesn't exist or it belongs to another user
3+
[weaver] Fixed constructor processing with try...catch, catch section now has correct leave

ChangeLog/7.1.0-Beta-2-dev.txt

Lines changed: 0 additions & 31 deletions
This file was deleted.

ChangeLog/7.1.0-Beta-2.txt

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
[main] NET6 support
2+
[main] Obsolete CatalogHelper class has been removed
3+
[main] Obsolete ReacreateTableHint has been removed
4+
[main] Obsolete Session.SelectStorageNode() method is removed
5+
[main] Obsolete methods from ArrayExtensions, EnumerableExtensions and QueryableExtensions have been removed
6+
[main] Obsolete DeleteDataHint.PostCopy property has been removed
7+
[main] Obsolete QueryEndpoint's members have been removed
8+
[main] Obsolete Query's members have been removed
9+
[main] Obsolete members of DelayedScalarQuery<T> have been removed
10+
[main] Obsolete FieldInfo.IsDynalicallyDefined property's been removed (FieldInfo.IsDynamicallyDefined is still there)
11+
[main] Changed translation of queries when DomainConfiguration.ShareStorageSchemaOverNodes set to true
12+
[main] StorageDriver.Compile(ISqlCompileUnit, NodeConfiguration) became obsolete
13+
[main] SqlNodeActualizer became obsolete
14+
[main] LockableExtensions.EnsureNotLocked() became obsolete, implementation moved to LockableBase directly
15+
[main] TypeInfoCollection.FindAncestor method became obsolete, use new TypeInfo.Ancestor property
16+
[main] TypeInfoCollection.FindDescendants methods became obsolete, use new TypeInfo.DirectDescendants/.AllDescendants properties
17+
[main] TypeInfoCollection.FindInterfaces methods became obsolete, use new TypeInfo.DirectInterfaces/.AllInterfaces properties
18+
[main] TypeInfoCollection.FindImplementors methods became obsolete, use new TypeInfo.DirectImplementors/.AllImplementors properties
19+
[main] TypeInfoCollection.FindRoot method became obsolete, use introduced TypeInfo.Root property
20+
[main] TypeInfo.GetImplementors(bool) became obsolete, use new TypeInfo.DirectImplementors/.AllImplementors properties
21+
[main] TypeInfo.GetInterfaces(bool) became obsolete, use new TypeInfo.DirectInterfaces/.AllInterfaces properties
22+
[main] TypeInfo.GetDescendants(bool) became obsolete, use new TypeInfo.DirectDescendants/.AllDescendants properties
23+
[main] TypeInfo.GetAncestors() became obsolete, use new TypeInfo.Ancestors property
24+
[main] TypeInfo.GetRoot() became obsolete, use introduced TypeInfo.Root property
25+
[main] IPropertyValidator.IsImmediate is read-only now
26+
[main] PropertyValidator.IsImmediate property has no setter, only init
27+
[main] PropertyValidator.ValidateOnlyIfModified property has no setter, only init
28+
[main] PropertyValidator.SkipOnTransactionCommit property has no setter, only init
29+
[main] RecordSetHeader.OrderTupleDescriptor became nullable to compensate TupleDescriptor's transition to read-only structure
30+
[main] IndexInfo.FilterByTypes changed result type to IReadOnlyList<TypeInfo>
31+
[main] IndexInfo.SelectColumns changed result type to IReadOnlyList<int>
32+
[main] IndexInfo.ValueColumnsMap changed result type to IReadOnlyList<Pair<int, List<int>>>
33+
[main] SqlCompilerConfiguration's DatabaseMapping and SchemaMapping moved to SqlPostCompilerConfiguration
34+
[main] Some EventArgs inheritors that were sealed classes transformed to read-only structures
35+
[main] DbCommandEventArgs became read-only structure
36+
[main] LogEventInfo became read-only structure
37+
[main] ILockable.Lock() now has default implementation that refers to ILockable.Lock(true)
38+
[main] TupleDescriptor became read-only structure
39+
[main] InterfaceMapping became read-only structure
40+
[main] ColumnIndexMap became read-only structure and properties changed retun type to IReadOnlyList<int>
41+
[main] TopologicalSorter.Sort() methods return IEnumerable<T>, use .SortToList() if results are needed as collection
42+
[main] TypeHelper.OrderByInheritance() returns IEnumerable<T> to avoid copying
43+
[main] TypeHelper.GetInterfaces() became obsolete, GetInterfacesUnordered() and GetInterfacesOrderedByInheritance() introduced
44+
[main] TypeDef.Validators and FieldDef.Validators properties return List<T>
45+
[main] SqlCustomFunctionCall and SqlFunctionCall share one base type
46+
[main] SqlFunctionCall.Arguments property is IReadOnlyList now and parameters can't be changed after instance creation
47+
[main] Xtensive.Sql.Dml.Extensions.IsNullReference() extension method is marked obsolete, use 'is null' operator instead
48+
[main] DirectSessionAccessor.GetChangedEntities() result type changed to improve enumeration
49+
[main] EntityChangeRegistry.GetItems(PersistenceState) changed result type to improve enumeration
50+
[main] EntitySetChangeRegistry.GetItems() changed result type to improve enumeration
51+
[main] IgnoreRule now has only one public constructor - parameterless
52+
[main] IgnoreRule supports indexes
53+
[main] Queries use parameters instead of constant values for type indentifiers within columns list
54+
[main] Added DomainConfiguration.PreferTypeIdsAsQueryParameters to choose between contants and parameters for TypeIds
55+
[main] ShareStorageSchemaOverNodes option now includes shared query cache when TypeIds as paremters are prefered
56+
[main] Introduced TypeInfo.Ancestor property
57+
[main] Introduced TypeInfo.DirectDescendants and.AllDescendants properties
58+
[main] Introduced TypeInfo.DirectInterfaces and.AllInterfaces properties
59+
[main] Introduced TypeInfo.DirectImplementors .AllImplementors properties
60+
[main] BitFaster.Caching package reference is updated to 1.0.7
61+
[main] No error caused by ambiguity due to new IQueryable extension methods of .Net 6
62+
[main] Improved internal logging speed
63+
[main] General performance and memory efficiency improvements
64+
[reprocessing] DomainBuildErrorEventArgs (not sealed) became read-only structure
65+
[reprocessing] ExecuteErrorEventArgs (not sealed) became read-only structure
66+
[tracking] TrackingCompletedEventArgs (sealed) became read-only structure
67+
[tracking] ITrackingItem ChangedValues property changed return type to IReadOnlyList<ChangedValue>
68+
[tracking] ChangedValue became read-only structure
69+
[Web] Removed Obsolete SessionManager and StartupConfigurationExtension

ChangeLog/7.1.0-RC-dev.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
[main] Updated BitFaster.Caching package reference to v2.0.0
2+
[sqlserver] Updated Microsoft.Data.SqlClient package reference to v5.0.0

Orm/Xtensive.Orm.PostgreSql/Sql.Drivers.PostgreSql/Resources/Strings.Designer.cs

Lines changed: 10 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Orm/Xtensive.Orm.PostgreSql/Sql.Drivers.PostgreSql/Resources/Strings.resx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,10 +112,10 @@
112112
<value>2.0</value>
113113
</resheader>
114114
<resheader name="reader">
115-
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
115+
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
116116
</resheader>
117117
<resheader name="writer">
118-
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
118+
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119119
</resheader>
120120
<data name="ExPostgreSqlBelow83IsNotSupported" xml:space="preserve">
121121
<value>PostgreSQL below 8.3 is not supported.</value>
@@ -132,4 +132,7 @@
132132
<data name="ExTheTypeOfGivenParameterCannotBeTreatedAsOffsetForDateTimeOffsetConstruction" xml:space="preserve">
133133
<value>The type of given parameter cannot be treated as offset for DateTimeOffset construction.</value>
134134
</data>
135+
<data name="ExSchemaXDoesNotExistOrBelongsToAnotherUser" xml:space="preserve">
136+
<value>Schema '{0}' either does not exist or belongs to another user.</value>
137+
</data>
135138
</root>

Orm/Xtensive.Orm.PostgreSql/Sql.Drivers.PostgreSql/v8_0/Extractor.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -580,7 +580,11 @@ protected virtual ISqlCompileUnit BuildExtractSchemaContentsQuery(ExtractionCont
580580
var targetSchemes = context.TargetSchemes;
581581
if (targetSchemes != null && targetSchemes.Count > 0) {
582582
var schemesIndexes = catalog.Schemas.Where(sch => targetSchemes.ContainsKey(sch.Name))
583-
.Select(sch => context.ReversedSchemaMap[sch]);
583+
.Select(sch =>
584+
context.ReversedSchemaMap.TryGetValue(sch, out var oid)
585+
? oid
586+
: throw new InvalidOperationException(string.Format(Resources.Strings.ExSchemaXDoesNotExistOrBelongsToAnotherUser, sch.Name))
587+
);
584588
select.Where &= SqlDml.In(relationsTable["relnamespace"], CreateOidRow(schemesIndexes));
585589
}
586590

Orm/Xtensive.Orm.PostgreSql/Xtensive.Orm.PostgreSql.csproj

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<Project Sdk="Microsoft.NET.Sdk">
1+
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
33
<IsPackable>true</IsPackable>
44
<DocumentationFile>$(OutputPath)$(TargetFramework)\$(AssemblyName).xml</DocumentationFile>
@@ -26,4 +26,16 @@
2626
<Link>Properties\Visibility.cs</Link>
2727
</Compile>
2828
</ItemGroup>
29+
<ItemGroup>
30+
<None Include="Sql.Drivers.PostgreSql\Resources\Strings.resx">
31+
<Generator>ResXFileCodeGenerator</Generator>
32+
<SubType>Designer</SubType>
33+
<LastGenOutput>Strings.Designer.cs</LastGenOutput>
34+
</None>
35+
<Compile Update="Sql.Drivers.PostgreSql\Resources\Strings.Designer.cs">
36+
<DesignTime>True</DesignTime>
37+
<AutoGen>True</AutoGen>
38+
<DependentUpon>Strings.resx</DependentUpon>
39+
</Compile>
40+
</ItemGroup>
2941
</Project>

Orm/Xtensive.Orm.SqlServer/Xtensive.Orm.SqlServer.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
<WarningLevel>2</WarningLevel>
1717
</PropertyGroup>
1818
<ItemGroup>
19-
<PackageReference Include="Microsoft.Data.SqlClient" Version="4.0.0" />
19+
<PackageReference Include="Microsoft.Data.SqlClient" Version="5.0.0" />
2020
</ItemGroup>
2121

2222
<ItemGroup>

Orm/Xtensive.Orm.Tests.Core/Helpers/TopologicalSorterTest.cs

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ private static void InternalPerformanceTest(int nodeCount, int averageConnection
6161
GC.GetTotalMemory(true);
6262
using (new Measurement("Sorting", nodeCount + connectionCount)) {
6363
List<Node<int, int>> removedEdges;
64-
var result = TopologicalSorter.Sort(nodes, out removedEdges);
64+
var result = TopologicalSorter.SortToList(nodes, out removedEdges);
6565
if (!allowLoops)
6666
Assert.AreEqual(nodeCount, result.Count);
6767
}
@@ -75,8 +75,7 @@ public void SelfReferenceTest()
7575
var connection = new NodeConnection<int, string>(node, node, "ConnectionItem");
7676
connection.BindToNodes();
7777

78-
List<NodeConnection<int, string>> removedEdges;
79-
List<int> result = TopologicalSorter.Sort(EnumerableUtils.One(node), out removedEdges);
78+
var result = TopologicalSorter.SortToList(EnumerableUtils.One(node), out var removedEdges);
8079
Assert.AreEqual(1, result.Count);
8180
Assert.AreEqual(node.Item, result[0]);
8281
Assert.AreEqual(1, removedEdges.Count);
@@ -97,8 +96,7 @@ public void RemoveWholeNodeTest()
9796

9897
// Remove edge by edge.
9998

100-
List<NodeConnection<int, string>> removedEdges;
101-
List<int> result = TopologicalSorter.Sort(new[] {node2, node1}, out removedEdges);
99+
var result = TopologicalSorter.SortToList(new[] {node2, node1}, out List<NodeConnection<int, string>> removedEdges);
102100
Assert.AreEqual(2, result.Count);
103101
Assert.AreEqual(node1.Item, result[0]);
104102
Assert.AreEqual(node2.Item, result[1]);
@@ -111,7 +109,7 @@ public void RemoveWholeNodeTest()
111109
connection12_2.BindToNodes();
112110
connection21_1.BindToNodes();
113111

114-
result = TopologicalSorter.Sort(new[] {node2, node1}, out removedEdges, true);
112+
result = TopologicalSorter.SortToList(new[] {node2, node1}, out removedEdges, true);
115113
Assert.AreEqual(2, result.Count);
116114
Assert.AreEqual(node1.Item, result[1]);
117115
Assert.AreEqual(node2.Item, result[0]);
@@ -131,8 +129,7 @@ public void CombinedTest()
131129

132130
private void TestSort<T>(T[] data, Predicate<T, T> connector, T[] expected, T[] loops)
133131
{
134-
List<Node<T, object>> actualLoopNodes;
135-
List<T> actual = TopologicalSorter.Sort(data, connector, out actualLoopNodes);
132+
var actual = TopologicalSorter.SortToList(data, connector, out List<Node<T, object>> actualLoopNodes);
136133
T[] actualLoops = null;
137134
if (actualLoopNodes != null)
138135
actualLoops = actualLoopNodes
@@ -143,8 +140,7 @@ private void TestSort<T>(T[] data, Predicate<T, T> connector, T[] expected, T[]
143140
AssertEx.HasSameElements(expected, actual);
144141
AssertEx.HasSameElements(loops, actualLoops);
145142

146-
List<NodeConnection<T, object>> removedEdges;
147-
List<T> sortWithRemove = TopologicalSorter.Sort(data, connector, out removedEdges);
143+
var sortWithRemove = TopologicalSorter.SortToList(data, connector, out List<NodeConnection<T, object>> removedEdges);
148144
Assert.AreEqual(sortWithRemove.Count, data.Length);
149145
if (loops == null) {
150146
Assert.AreEqual(sortWithRemove.Count, actual.Count);

0 commit comments

Comments
 (0)