Skip to content

Commit 2b71090

Browse files
committed
Merge branch '6.0' into 7.0
# Conflicts: # Orm/Xtensive.Orm.SqlServer/Sql.Drivers.SqlServer/Azure/Extractor.cs # Orm/Xtensive.Orm.SqlServer/Sql.Drivers.SqlServer/v11/Extractor.cs # Orm/Xtensive.Orm/Orm/Building/Builders/PartialIndexFilterBuilder.cs # Orm/Xtensive.Orm/Orm/Providers/CommandProcessing/SimpleCommandProcessor.cs # Orm/Xtensive.Orm/Orm/Providers/Interfaces/IProviderExecutor.cs # Orm/Xtensive.Orm/Orm/Providers/SqlSessionHandler.IProviderExecutor.cs # Orm/Xtensive.Orm/Orm/Providers/SqlSessionHandler.cs # Orm/Xtensive.Orm/Orm/Providers/SqlStoreProvider.cs # Orm/Xtensive.Orm/Orm/Providers/SqlTemporaryDataProvider.cs # Orm/Xtensive.Orm/Orm/Providers/StorageDriver.Operations.cs # Orm/Xtensive.Orm/Orm/Rse/Providers/Executable/ExecutableRawProvider.cs # Orm/Xtensive.Orm/Orm/Rse/Providers/ExecutableProvider.cs # Orm/Xtensive.Orm/Orm/Rse/RecordSet.cs # Version.props
2 parents 1df8aea + 845fb2f commit 2b71090

File tree

21 files changed

+1975
-324
lines changed

21 files changed

+1975
-324
lines changed

ChangeLog/6.0.9_Z_Final.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
[main] Improved enum comparison in queries so result SQL queries won't break index seek if any exists
2+
[main] Improved enum comparison in partial indexes
3+
[main] Addressed certain issues with with async queries containing .Store() and .In() via temporary table
4+
[sqlserver] Fixed Full-text indexes extraction for Azure SQL provider
5+
[sqlserver] Correct extraction of custom sequences based on types other than BIGINT
Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,18 @@
1-
// Copyright (C) 2010-2020 Xtensive LLC.
1+
// Copyright (C) 2010-2021 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
// Created by: Denis Krjuchkov
55
// Created: 2010.03.02
66

7-
using System.Threading;
8-
using System.Threading.Tasks;
9-
107
namespace Xtensive.Sql.Drivers.SqlServer.Azure
118
{
129
internal class Extractor : v12.Extractor
1310
{
14-
protected override void ExtractFulltextIndexes(ExtractionContext context)
15-
{
16-
}
17-
18-
protected override Task ExtractFulltextIndexesAsync(ExtractionContext context, CancellationToken token) => Task.CompletedTask;
19-
20-
2111
// Constructors
2212

2313
public Extractor(SqlDriver driver)
2414
: base(driver)
2515
{
2616
}
2717
}
28-
}
18+
}

Orm/Xtensive.Orm.SqlServer/Sql.Drivers.SqlServer/v11/Extractor.cs

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
// Created by: Denis Krjuchkov
55
// Created: 2012.04.05
66

7+
using System;
78
using System.Collections.Generic;
89
using System.Data.Common;
910
using System.Threading;
@@ -13,6 +14,8 @@ namespace Xtensive.Sql.Drivers.SqlServer.v11
1314
{
1415
internal class Extractor : v10.Extractor
1516
{
17+
private readonly Dictionary<int, Func<DbDataReader, int, long>> valueReaders;
18+
1619
protected override void ExtractCatalogContents(ExtractionContext context)
1720
{
1821
base.ExtractCatalogContents(context);
@@ -57,6 +60,7 @@ private string BuildExtractSequencesQuery(ExtractionContext context)
5760
SELECT
5861
schema_id,
5962
name,
63+
user_type_id,
6064
start_value,
6165
increment,
6266
minimum_value,
@@ -74,15 +78,22 @@ ORDER BY
7478

7579
private void ReadSequenceData(DbDataReader reader, ExtractionContext context)
7680
{
81+
7782
var currentSchema = context.SchemaIndex[reader.GetInt32(0)];
78-
var sequence = currentSchema.CreateSequence(reader.GetString(1));
83+
var sequenceName = reader.GetString(1);
84+
var sequence = currentSchema.CreateSequence(sequenceName);
7985
var descriptor = sequence.SequenceDescriptor;
80-
descriptor.StartValue = reader.GetInt64(2);
81-
descriptor.Increment = reader.GetInt64(3);
82-
descriptor.MinValue = reader.GetInt64(4);
83-
descriptor.MaxValue = reader.GetInt64(5);
84-
descriptor.IsCyclic = reader.GetBoolean(6);
85-
descriptor.LastValue = reader.GetInt64(7);
86+
87+
if (!valueReaders.TryGetValue(reader.GetInt32(2), out var valueReader)) {
88+
throw new ArgumentOutOfRangeException($"Type of sequence '{sequenceName}' is not supported.");
89+
}
90+
91+
descriptor.StartValue = valueReader(reader, 3);
92+
descriptor.Increment = valueReader(reader, 4);
93+
descriptor.MinValue = valueReader(reader, 5);
94+
descriptor.MaxValue = valueReader(reader, 6);
95+
descriptor.IsCyclic = reader.GetBoolean(7);
96+
descriptor.LastValue = valueReader(reader, 8);
8697
}
8798

8899

@@ -95,6 +106,11 @@ protected override void RegisterReplacements(ExtractionContext context)
95106
public Extractor(SqlDriver driver)
96107
: base(driver)
97108
{
109+
valueReaders = new Dictionary<int, Func<DbDataReader, int, long>>(4);
110+
valueReaders[48] = (DbDataReader reader, int index) => reader.GetByte(index);
111+
valueReaders[52] = (DbDataReader reader, int index) => reader.GetInt16(index);
112+
valueReaders[56] = (DbDataReader reader, int index) => reader.GetInt32(index);
113+
valueReaders[127] = (DbDataReader reader, int index) => reader.GetInt64(index);
98114
}
99115
}
100-
}
116+
}

0 commit comments

Comments
 (0)