Skip to content

Tuple transform refactoring#468

Open
alex-kulakov wants to merge 71 commits intomasterfrom
tuple-transform-refactoring
Open

Tuple transform refactoring#468
alex-kulakov wants to merge 71 commits intomasterfrom
tuple-transform-refactoring

Conversation

@alex-kulakov
Copy link
Copy Markdown
Contributor

Heavy refactoring of tuple transformation and Rse.Providers made by @AlexUstinov

  • Many types from Xtensive.Tuples.Transform namespace were removed, renamed or turned into internal, whole concept simplified and now contains only what's in use
  • Xtensive.Collections.FixedList3 is removed and Xtensive.Tuples.TupleExtensions's methods that used it also removed
  • Xtensive.Orm.Rse.Providers no longer rely on virtual method to build their headers but rather use static methods within type to do so, which reduces overhead significantly by just faster calls.
  • Removed some double-checks of incoming parameters or made them a bit faster by using dotnet validators instead of ours ArgumentValidator.
  • other slight improvements here and there

AlexUstinov and others added 30 commits January 26, 2022 22:06
# Conflicts:
#	Directory.Build.props
#	Extensions/Xtensive.Orm.Security/Cryptography/GenericHashingService.cs
#	Extensions/Xtensive.Orm.Security/Cryptography/MD5HashingService.cs
#	Extensions/Xtensive.Orm.Security/Cryptography/SHA1HashingService.cs
#	Extensions/Xtensive.Orm.Security/Cryptography/SHA256HashingService.cs
#	Extensions/Xtensive.Orm.Security/Cryptography/SHA384HashingService.cs
#	Extensions/Xtensive.Orm.Security/Cryptography/SHA512HashingService.cs
#	Orm/Xtensive.Orm.Sqlite/Sql.Drivers.Sqlite/ProviderInitializer.cs
#	Orm/Xtensive.Orm.Tests/Storage/Randomized/RandomizedTest.cs
#	Orm/Xtensive.Orm.Tests/Upgrade/ConflictsByTable/TestBase.cs
#	Orm/Xtensive.Orm/Core/Extensions/ArrayExtensions.cs
#	Orm/Xtensive.Orm/Orm/EntitySetBase.cs
#	Orm/Xtensive.Orm/Orm/Model/TypeInfo.cs
#	Orm/Xtensive.Orm/Orm/Providers/NameBuilder.cs
#	Orm/Xtensive.Orm/Orm/Providers/SqlCompiler.Include.cs
#	Orm/Xtensive.Orm/Orm/Providers/SqlProvider.cs
#	Orm/Xtensive.Orm/Orm/QueryableExtensions.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/AggregateProvider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/CalculateProvider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/ConcatProvider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/ContainsTableProvider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/FreeTextProvider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/IncludeProvider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/OrderProviderBase.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/Executable/ExecutableRawProvider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/ExecutableProvider.cs
#	Orm/Xtensive.Orm/Tuples/Packed/PackedFieldAccessor.cs
#	Orm/Xtensive.Orm/Tuples/Packed/PackedFieldDescriptiorExtensions.cs
#	Orm/Xtensive.Orm/Tuples/Packed/PackedFieldDescriptor.cs
#	Orm/Xtensive.Orm/Tuples/Packed/PackedTuple.cs
#	Orm/Xtensive.Orm/Tuples/Transform/TupleTransformBase.cs
#	Orm/Xtensive.Orm/Tuples/Tuple.cs
#	Orm/Xtensive.Orm/Tuples/TupleExtensions.cs
# Conflicts:
#	Orm/Xtensive.Orm.Sqlite/Sql.Drivers.Sqlite/ProviderInitializer.cs
#	Orm/Xtensive.Orm/Orm/EntitySetBase.cs
#	Orm/Xtensive.Orm/Orm/Providers/SqlProvider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/AggregateProvider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/ApplyProvider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/BinaryProvider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/CalculateProvider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/ContainsTableProvider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/ExistenceProvider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/IncludeProvider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/LockProvider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/RawProvider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/SelectProvider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/StoreProvider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/TagProvider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/UnaryProvider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/VoidProvider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/ExecutableProvider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/Provider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Transformation/ColumnMappingInspector.cs
#	Orm/Xtensive.Orm/Tuples/Transform/CombineTransform.cs
#	Orm/Xtensive.Orm/Tuples/Transform/CutInTransform.cs
#	Orm/Xtensive.Orm/Tuples/Transform/CutOutTransform.cs
#	Orm/Xtensive.Orm/Tuples/Transform/Internals/MapTransformTuple.cs
#	Orm/Xtensive.Orm/Tuples/Transform/MapTransform.cs
#	Orm/Xtensive.Orm/Tuples/Transform/ReadOnlyTransform.cs
#	Orm/Xtensive.Orm/Tuples/Transform/TupleTransformBase.cs
#	Orm/Xtensive.Orm/Tuples/Transform/WrappingTransformTupleBase.cs
# Conflicts:
#	Orm/Xtensive.Orm.Tests.Core/Tuples/Transform/CutInTransformTest.cs
#	Orm/Xtensive.Orm.Tests.Core/Tuples/Transform/MapTransformTest.cs
#	Orm/Xtensive.Orm.Tests.Core/Tuples/Transform/MergeTransformTest.cs
#	Orm/Xtensive.Orm.Tests.Core/Tuples/Transform/ReadOnlyTransformTest.cs
#	Orm/Xtensive.Orm/Linq/ExpressionExtensions.cs
#	Orm/Xtensive.Orm/Orm/Linq/Translator.Expressions.cs
#	Version.props
- Performance tests of constructors
- ToString test for ConcatTransform
- everywhere inside the project transformations are perforemed on valid
  descriptors so we can skip checks of structs, transformations are public though
  so we have to keep validation in public ctor
# Conflicts:
#	ChangeLog/7.2.2-dev.txt
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants