|
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 |
2 | 276 | =============================
|
3 | 277 |
|
4 | 278 | Release notes - NHibernate - Version 5.2.7
|
|
0 commit comments