Skip to content

Commit cf32e05

Browse files
Release 5.3 (#2388)
1 parent ae0f75c commit cf32e05

File tree

2 files changed

+276
-2
lines changed

2 files changed

+276
-2
lines changed

build-common/NHibernate.props

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<NhVersion Condition="'$(NhVersion)' == ''" >5.3</NhVersion>
66
<VersionPatch Condition="'$(VersionPatch)' == ''">0</VersionPatch>
77
<!-- Clear VersionSuffix for making release and set it to dev for making development builds -->
8-
<VersionSuffix Condition="'$(VersionSuffix)' == ''">dev</VersionSuffix>
8+
<VersionSuffix Condition="'$(VersionSuffix)' == ''"></VersionSuffix>
99

1010
<VersionPrefix Condition="'$(VersionPrefix)' == ''">$(NhVersion).$(VersionPatch)</VersionPrefix>
1111
<VersionSuffix Condition="'$(VersionSuffix)' != '' AND '$(BuildNumber)' != ''">$(VersionSuffix).$(BuildNumber)</VersionSuffix>

releasenotes.txt

+275-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,278 @@
1-
Build 5.2.7
1+
Build 5.3.0
2+
=============================
3+
4+
Release notes - NHibernate - Version 5.3.0
5+
6+
220 issues were resolved in this release.
7+
8+
##### Possible Breaking Changes #####
9+
* A distributed cache may hold conflicting timestamps after upgrade for as much as twelve hours.
10+
Consider flushing a distributed cache after upgrade to avoid any issue. Do not share a distributed
11+
cache with applications using an earlier version of NHibernate.
12+
* The counter id generator may generate conflicting ids for as much as twelve hours after upgrade.
13+
* `update` and `delete` statements will now take into account any enabled filter on the entities
14+
they update or delete, while previously they were ignoring them. (`insert` statements will also take
15+
them into account, but previously they were failing instead of ignoring enabled filters.)
16+
* ISession.Persist will no more trigger immediate generation of identifier.
17+
* Bags will no more be loaded with "null" entities, they will be filtered out.
18+
* Setting the value of an uninitialized lazy property will no more trigger loading of all the lazy
19+
properties of the entity.
20+
* If an uninitialized lazy property has got its value set, without any other subsequent lazy property
21+
load on the entity, a dynamic update will occur on flush, even if the entity has dynamic updates
22+
disabled. This update will occur even if the set value is identical to the currently persisted
23+
property value.
24+
* Assigning an uninitialized proxy to a `no-proxy` property will no more trigger the proxy
25+
initialization. Moreover, reading the property afterwards will no more unwrap the assigned proxy,
26+
but will yield it.
27+
* A class having an explicitly implemented interface declaring a member with the same name than the
28+
class id will have its proxies trigger a lazy load if the interface "id" is accessed.
29+
* SQLite: in order to avoid a floating point division bug losing the fractional part, decimal are now
30+
stored as `REAL` instead of `NUMERIC`. Both are binary floating point types, excepted that `NUMERIC`
31+
stores integral values as `INTEGER`. This change may cause big integral decimal values to lose more
32+
precision in SQLite.
33+
* Custom dialects used for databases that do not support cross join will have to override
34+
`SupportsCrossJoin` property and set it to `false`.
35+
* `VisitorParameters.ConstantToParameterMap` may contain the same parameter for multiple constant
36+
expressions.
37+
* `ICache` caches yielded by the session factory will be `CacheBase` wrappers around the cache actually
38+
provided by the cache provider, if it was not deriving from `CacheBase`.
39+
40+
** Bug
41+
42+
* #2425 NRE with nullable subselect value in Linq
43+
* #2421 Chapter 26: Best Practices, error about identifier recommendations
44+
* #2410 Second level cache failures with CoreMemoryCaches
45+
* #2380 OData NotSupportedException MemberInit on base class member
46+
* #2365 Add Linq parameter type detection
47+
* #2346 Fix SQLite typing
48+
* #2336 Intermittent null reference exception on CloseConnection
49+
* #2324 Update IIsEntityDecider to use ExpressionsHelper.TryGetMappedType
50+
* #2319 Upgrade AsyncGenerator to 0.18.1
51+
* #2299 Proper query plan caching for DML LINQ queries
52+
* #2286 Wrong sql if used joined-subclass with filters for key columns
53+
* #2278 IInterceptor.OnPrepareStatement results not used in insert/update commands
54+
* #2266 Fix comment for Restrictions.IsEmpty
55+
* #2255 Fix a flaky test
56+
* #2245 Add sqlite.binaryguid to configuration schema
57+
* #2244 SelectMany Linq extension does not work correctly - subsequent FetchMany fails
58+
* #2233 Fix possible issue with async code for delayed entity inserts
59+
* #2231 Invalid alias name used in Linq Joins
60+
* #2222 NHibernate query plan for Linq Dml is not cached
61+
* #2219 Fix BuildTool output path
62+
* #2215 Fix ShowBuildMenu.sh
63+
* #2181 Skip null entities when bag is populated
64+
* #2164 Do not call GC.SuppressFinalize from finalizer thread
65+
* #2158 Proper support for IN clause for composite values in Criteria
66+
* #2147 Improve async locking
67+
* #2144 AdoTransaction memory leak (5.2.5)
68+
* #2137 NullReferenceException in EntityEntry.GetLoadedValue on an update of a never loaded detached entity
69+
* #2099 "Composite Index" not working with inheritance
70+
* #2088 Fix cacheable CreateSQLQuery throws on query with AddJoin
71+
* #2085 Duplicated methods generated in proxies
72+
* #2067 Wrong proxy built for base class with interfaced sub-classes
73+
* #2064 One-to-one properties not appearing in Select() projection result set
74+
* #2053 Dml Style Update fails with static where sql in mapping
75+
* #2038 Fix a typo on the memcached distributed cache description in the docs
76+
* #2029 Incorrect SQL for cast inside an aggregate (MS SQL)
77+
* #2019 Update symbol package format and add Sourcelink
78+
* #2000 Fixed Equals method for transformers
79+
* #1997 Fix criteria collection ordering
80+
* #1994 Extra Select for every "outfiltered" Element
81+
* #1993 InvalidCastException when merging a collection with a lazy property
82+
* #1985 DateTime.xxxx are not supported in SelectGroup
83+
* #1965 Fix code sample in docs, section 10.4.2
84+
* #1956 Fix lazy property caching
85+
* #1921 DML insert fails when a filter is enabled
86+
* #1738 Refresh of locally removed collection item crashes with "instance was not in a valid state"
87+
* #1480 Fix cache build for honoring mapped concurrency
88+
* #1368 NH-3778 - Crash when performing a Linq query on a one-to-one mapped reference
89+
* #1341 NH-3848 - Child collection fetched using left outer join with on clause or where clause restrictions on fetched collection shouldn’t be stored in second level cache.
90+
* #1319 NH-3549 - BasicFormatter throws exceptions for certain types of data containing "signal words"
91+
* #1312 NH-3493 - Cannot use alias between more than 1 level of nested queries
92+
* #1310 NH-3478 - StatefulPersistenceContext.RemoveEntity KeyNotFoundException on Evict
93+
* #1309 NH-3469 - Impossible to load one-to-one association with LINQ for composite-id
94+
* #1274 NH-3117 - Query on one-to-one property returns incorrect results
95+
* #1263 NH-2991 - Criteria withClause doesn't work in case of many to many collections
96+
* #1228 NH-2648 - HQL with joins in sub-select creates wrong SQL
97+
* #1206 NH-1761 - Criteria query inserts an extra order by expression when using JoinType.LeftOuterJoin and Projections
98+
* #1158 NH-3492 - SqlClientBatchingBatcher incorrectly ignoring per-SessionFactory Settings properties
99+
* #1128 NH-3210 - NHibernate Linq Provider does cross join or left outer join and not inner join (even if outer-join=false on many-to-one mapping)
100+
* #1124 NH-3155 - Linq subquery with group is not supported
101+
* #1125 NH-3178 - Exception when using one-to-one properties in a criteria projections
102+
* #1117 NH-3079 - Cannot use a sql custom loader with a composite ID
103+
* #1107 NH-2983 - Coalesce in projection doesn't work if there is more than 1 Coalesce
104+
* #1103 NH-2926 - CriteriaQuery - Unable to sort by composite-id
105+
* #1100 NH-2892 - The <key /> columns containing reserved words are not quoted
106+
* #1059 NH-1001 - Select statement issued for each not-found=ignore
107+
* #1047 NH-3865 - Swallowed ArgumentNullException with dynamic composite id
108+
* #1015 NH-2951 - Missing alias in hql update (select) statement with joined subclasses
109+
* #1006 NH-2714 - Properties mapped inside a <properties> group are not set when retrieving object
110+
111+
** New Feature
112+
113+
* #2411 Add an option to register a custom pre-transformer for a Linq query
114+
* #2392 Add locate support for SQLite
115+
* #2362 Add support for lt, gt, le, ge oData operators on strings
116+
* #2349 Add support for Oracle binary floating point types
117+
* #2347 Support fetching individual lazy properties for Criteria EntityProjection
118+
* #2327 Add cross join support for Hql and Linq query provider
119+
* #2313 Add overloads to ISession.Get taking both an entityName and a lockMode
120+
* #2259 Schema auto-update should throw errors
121+
* #2221 Support MemberInit expression in group by
122+
* #2216 Add a driver to support Microsoft.Data.SqlClient provider
123+
* #2209 IN clause support in hql for composite keys on databases without row value constructor support
124+
* #2156 Support basic arithmetic operations (+, -, *, /) in QueryOver
125+
* #2135 Support OData GroupBy/Aggregate
126+
* #2116 Ability to replace ConfigurationManager with a custom config provider
127+
* #2108 Multi-Tenancy: Implement tenant per Database strategy
128+
* #2107 Port Hibernate's Aggregate functions for subqueries
129+
* #2106 Port Hibernate's support subqueries in HQL as CASE statement alternatives
130+
* #2100 Allow to override default types with length or precision parameters
131+
* #2097 Add support for fetching an individual lazy property with Criteria
132+
* #2090 Add support for caching fetched relations with Criteria
133+
* #2080 Add ability to set custom collection type as a string in mapping by code
134+
* #2049 Fix property-ref ignoring not-found="exception" mapping
135+
* #1949 Port Hibernate's lazy attribute fetch groups
136+
* #1922 Add support for fetching an individual lazy property with hql and linq provider
137+
* #1861 Lazy loading and Eager initialization for Component
138+
* #1376 Composite id is incorrectly expanded in SQL
139+
* #1195 NH-4078 - LINQ fetched collections aren't cached
140+
* #981 NH-3873 - Explicit joins on unrelated classes
141+
* #959 NH-4048 - Support non-deterministic/db-side-only methods in Linq
142+
* #896 NH-1432 - Expression.Sql should support aliases other than {alias}
143+
144+
** Improvement
145+
146+
* #2404 Allow overriding default CastFunction
147+
* #2401 Optimize JoinWalker.WhereString method
148+
* #2399 Optimize PersistentGenericBag.EqualsSnapshot
149+
* #2394 Optimize PersistentGenericSet snapshot
150+
* #2352 Improve performance of ReflectHelper.GetMethod/Definition
151+
* #2350 Optimize LINQ batch item processing for queries with overridden result type
152+
* #2316 Add multiple arguments support for ISQLFunction
153+
* #2315 Add SetFlushMode for QueryOver and Linq
154+
* #2295 Optimize filter applying logic
155+
* #2287 Allow customizing 'alias to bean' property not found behavior
156+
* #2284 Make persistent collection classes implement the IReadOnly* interfaces
157+
* #2270 IQueryOver<T> is lacking some options
158+
* #2254 Add dev build version suffix
159+
* #2249 Improve handling of SqlCeParameter.SqlDbType
160+
* #2248 Remove most RemoveAsAliasesFromSql usages
161+
* #2241 Avoid duplicating parameters in LINQ query
162+
* #2238 Call generic query.List from Linq queries
163+
* #2235 Configure log4net from embedded resource log4net.xml in tests
164+
* #2232 Use SqlStringBuilder for batching Future/QueryBatch queries
165+
* #2226 Use DateTime.UtcNow for timestamps
166+
* #2225 Avoid unnecessary locking via MethodImplOptions.Synchronized
167+
* #2223 Short-Circuit SessionFactoryImpl.Close() when already closed
168+
* #2214 Allow configuring auto-join transaction globally
169+
* #2213 Add a shortcut to reduce Transaction.Current reads
170+
* #2211 Port SupportsRowValueConstructorSyntaxInInList values
171+
* #2182 Upgrade AsyncGenerator to 0.17.1
172+
* #2166 Optimize usages of SqlString.Append
173+
* #2163 Add virtual DefaultQueryProvider.CreateWithOptions
174+
* #2162 Use collection types for private members
175+
* #2161 Optimize ToArray conversions
176+
* #2159 Unify handling of composite values in hql and Criteria
177+
* #2153 Use generic parameters in ActionQueue
178+
* #2139 Add ability to set fetch for <one-to-one> mapping in mapping by code
179+
* #2131 Create Stopwatch only if stats is enabled
180+
* #2126 Upgrade AsyncGenerator to 0.14.0
181+
* #2125 Skip logger default initialization logic when logger provided by user
182+
* #2123 Use Assert.Throws instead of try-catch in tests
183+
* #2119 Obsolete interfaces for Loquacios configuration and use config classes directly
184+
* #2117 Replace array concatenation with hand written append
185+
* #2115 Statefull Session commit performance issue when nothing changed and second level cache with query cache enabled
186+
* #2091 Obsolete StringHelper.Join
187+
* #2084 Improve one-to-one handling in queries
188+
* #2082 Use entities prepared by Loader in hql select projections
189+
* #2078 Avoid unnecessary join for entity comparisons in with clause
190+
* #2071 Support subclass mapping with EntityName based base class mapping
191+
* #2061 Reduce cast usage for COUNT aggregate and add support for Mssql count_big
192+
* #2058 DB2 dialect enhancements
193+
* #2056 Optimize GetOrphans and remove wrong checks from IsNotTransientSlow
194+
* #2041 Hql entity join fixes
195+
* #2039 Use generic CollectingNodeVisitor in hql parser
196+
* #2036 Reduce cast usage for aggregate functions
197+
* #2032 Allow using ON instead of WITH in hql
198+
* #2024 Refactor to simplify netfx retargeting
199+
* #2022 Make CancellationToken optional for async Linq DML queries
200+
* #2010 Add new collection operation queue mechanism
201+
* #2009 Add support for IDictionary<string, object> to IQuery.SetProperties
202+
* #2007 Dispose session in cascade tests
203+
* #2006 Skip Topological sorting if not required
204+
* #2003 Avoid some cases of Type -> string -> Type conversion in Mapping By Code
205+
* #2002 Refactor DependentAlias handling logic in JoinWalker
206+
* #1999 Optimize DistinctRootEntityResultTransformer
207+
* #1989 Optimize ProxyCacheEntry equality for the same instance
208+
* #1988 Improve exception on user types lacking some interfaces
209+
* #1984 Reduce SessionIdLoggingContext creation
210+
* #1981 Remove AbstractLazyInitializer unused field
211+
* #1979 Refactor sequential select
212+
* #1977 Obsolete IDeserializationCallback from EntityKey
213+
* #1972 Port Hibernate's EntityKey optimization
214+
* #1968 Optimize StaticProxyFactory GetProxy and GetFieldInterceptionProxy methods
215+
* #1955 Optimize batchable cache calls for cached queries
216+
* #1947 Partially port Hibernate's current field interceptor mechanism
217+
* #1946 Port Hibernate's BytecodeEnhancementMetadata
218+
* #1944 Extend IAccessOptimizer to support getting/setting single property value
219+
* #1943 Skip initialization of lazy properties when setting one
220+
* #1923 Obsolete StringHelper.Replace
221+
* #1860 LINQ "==" operator generates OR with IS NULL
222+
* #1754 Delay entity insert on Persist until session is flushed
223+
* #1627 Refactored session List<T> method for Criteria
224+
* #913 NH-3704 - Allow Setting Dynamic Component Templates From Dictionary
225+
* #864 NH-2379 - Add support of Left Joins to Linq Provider
226+
* #803 NH-2521 - Session.EnableFilter method should work for HQL-DML statement
227+
* #780 NH-1200 - Exception occurs when using criteria exist queries
228+
* #767 NH-3892 - Add ability to coalesce using a property instead of a constant
229+
* #722 NH-1953 - Support Future for collection filters
230+
* #476 Eliminated double Persister resolution in Loader.InstanceNotYetLoaded flow
231+
232+
** Task
233+
234+
* #2433 Improve slightly mapping documentation
235+
* #2432 Document the caches configuration providers
236+
* #2430 Document cache.serializer setting of CoreDistributedCache
237+
* #2397 Update GitReleaseManager
238+
* #2391 Use latest Firebird for AppVeyor and Travis
239+
* #2388 Release 5.3
240+
* #2382 Refactor debug logging in AbstractBatcher
241+
* #2381 Use optimized Dictionary.Remove(key, out value) in .NET Core
242+
* #2379 Simplify swap items logic in LINQ Visitors
243+
* #2377 Use dotnet to push packages to nuget
244+
* #2376 Add MyGet gallery link to readme
245+
* #2368 Replace SafetyEnumerable<T> with OfType<T> where applicable
246+
* #2363 Upgrade AsyncGenerator to 0.18.2
247+
* #2356 Obsolete IdentitySet class
248+
* #2354 Do not require Mono to build on not Windows
249+
* #2353 Update Microsoft.SourceLink.GitHub to 1.0.0
250+
* #2351 Get rid of JoinedEnumerable<T> and SingletonEnumerable<T>
251+
* #2348 Use static ReferenceComparer for reference comparisons
252+
* #2308 Merge 5.2.7
253+
* #2294 Add StackExchangeRedis cache provider documentation
254+
* #2293 Update RtMemoryCache framework dependency
255+
* #2265 Fix code style issues
256+
* #2251 Publish development nightly builds on nuget
257+
* #2205 Merge 5.2.6
258+
* #2171 Upgrade NUnit
259+
* #2122 Update AsyncGenerator to 0.13.3
260+
* #2016 Avoid recursive calls in BatchFetchQueue
261+
* #2014 Obsolete Environment.Properties
262+
* #1973 Investigate licenseUrl deprecation
263+
* #1971 Add SourceLink to allow NuGet package debugging
264+
* #1940 Allow to provide dev specific properties in NHibernate.dev.props
265+
* #1936 Upgrade AsyncGenerator to 0.13.1
266+
267+
** Tests
268+
269+
* #2384 Tests to verify NH-2329 is obsolete
270+
* #2360 Add OData test for single property $expand
271+
* #2089 Bidirectional list fails if session only knows about child
272+
* #2066 Tests for proxy interface handling
273+
* #1966 Test duplicated join on some Linq queries
274+
275+
Build 5.2.7
2276
=============================
3277

4278
Release notes - NHibernate - Version 5.2.7

0 commit comments

Comments
 (0)