Skip to content

Commit b49addd

Browse files
fixup! NH-4000 - Release notes.
1 parent f72df96 commit b49addd

File tree

1 file changed

+24
-1
lines changed

1 file changed

+24
-1
lines changed

releasenotes.txt

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,14 @@
2424
types. (IDbCommand => DbCommand, ...)
2525
* The Date NHibernate type will no more replace by null values below its base value (which was year 1753).
2626
Its base value is now DateTime.MinValue. Its configuration parameter is obsolete.
27+
* NHibernate type DateTimeType, which is the default for a .Net DateTime, does no longer cut fractional
28+
seconds. Use DateTimeNoMsType if you wish to have fractional seconds cut. It applies to its Local/Utc
29+
counterparts too.
30+
* LocalDateTimeType and UtcDateTimeType do no more accept being set with value having a non-matching kind,
31+
they throw instead.
32+
* DbTimestamp will now round the retrieved value according to Dialect.TimestampResolutionInTicks.
33+
* When an object typed property is mapped to a NHibernate timestamp, setting an invalid object in the
34+
property will now throw at flush instead of replacing it with DateTime.Now.
2735
* Transaction scopes handling has undergone a major rework. See NH-4011 for full details.
2836
** More transaction promotion to distributed may occur if you use the "flush on commit" feature with
2937
transaction scopes. Explicitly flush your session instead. Ensure it does not occur by disabling
@@ -47,6 +55,9 @@
4755
changes. See https://github.com/nhibernate/nhibernate-core/pull/568 changes to test files for examples.
4856
* NHibernate Linq internals have undergone some minor changes which may breaks custom Linq providers due
4957
to method signature changes and additional methods to implement.
58+
* IMapping interface has an additional Dialect member. ISessionFactoryImplementor has lost it, since it
59+
gains it back through IMapping.
60+
* IDriver.ExpandQueryParameters and DriverBase.CloneParameter take an additional argument.
5061
* NullableType, its descendent (notably all PrimitiveType) and IUserType value getters and setters now
5162
take the session as an argument. This should mainly impact custom types implementors.
5263
* EmitUtil is now internal and has been cleaned of unused members.
@@ -64,13 +75,21 @@
6475
* Sessions concrete classes constructors have been changed. (It is not expected for them to be used
6576
directly.)
6677
* Obsolete setting interceptors.beforetransactioncompletion_ignore_exceptions is dropped.
78+
* SQL Server 2008+ dialects now use datetime2 instead of datetime for all date time types, including
79+
timestamp. This can be reverted with sql_types.keep_datetime setting.
80+
* SQL Server 2008+ timestamp resolution is now 100ns in accordance with datetime2 capabilities, down from
81+
10ms previously. This can be reverted with sql_types.keep_datetime setting.
82+
* Oracle 9g+ dialects now use timestamp(7) for all date time types, instead of timestamp(4).
83+
* Oracle 9g+ timestamp resolution is now 100ns in accordance with timestamp(7) capabilities, down from
84+
100µs previously.
6785
* Oracle: Hbm2dll will no-more choose N- prefixed types for typing Unicode string columns by default.
6886
This can be changed with oracle.use_n_prefixed_types_for_unicode setting, which will furthermore
6987
control DbCommand parameters typing accordingly. See NH-4062.
7088
* SqlServerCe: the id generator "native" will now resolve as table-hilo instead of identity.
7189
* Firebird: timestamp resolution is now 1ms.
7290
* PostgreSQL: if Npgsql v3 or later is used, time DbParameters will be fetch with TimeSpan instead of
7391
DateTime.
92+
* ODBC: String parameter length will no more be specified by the OdbcDriver.
7493

7594
** Sub-task
7695
* [NH-3956] - Native SQL query plan may get wrong plan
@@ -104,6 +123,7 @@
104123
* [NH-3850] - .Count(), .Any() and other aggregates return only first result on polymorphic queries
105124
* [NH-3885] - ThreadSafeDictionary is not threadsafe
106125
* [NH-3889] - Coalesce on entity in sub-select causes incorrect SQL
126+
* [NH-3895] - Problem with DateTime fractional seconds on ODBC for MS SQL Server
107127
* [NH-3911] - Reflection Optimizer tries to cast values to getter type in setter
108128
* [NH-3913] - Component has bag of child components. Child property mapping ignored
109129
* [NH-3931] - Invalid order of child inserts when using TPH inheritance
@@ -128,6 +148,9 @@
128148
* [NH-4038] - Mapping a TimeSpan in a collection component mapping maps as a BIGINT
129149
* [NH-4046] - Default length too short for variable length types with SAP Anywhere / ASE
130150
* [NH-4077] - Possible race condition in ActionQueue.ExecuteActions
151+
* [NH-4083] - ODBC nvarchar parameter corruption
152+
* [NH-4084] - DbTimestamp cause stale update exception
153+
* [NH-4086] - TimeType may lose fractional seconds
131154

132155
** New Feature
133156
* [NH-1530] - Add support for XmlDocType and XDocType for Oracle
@@ -172,8 +195,8 @@
172195
* [NH-3744] - Fixed spelling of ContraintOrderedTableKeyColumnClosure method
173196
* [NH-3750] - Use NuGet to refer to Remotion.Linq (unmerge ReMotion.Linq)
174197
* [NH-3877] - Target .NET 4.6.1
175-
* [NH-3884] - Default DateTimeType can not be overridden for SQL queries
176198
* [NH-3900] - Upgrade to Nunit 3.x
199+
* [NH-3919] - Clean up and harmonize datetime types with regards to different dialects
177200
* [NH-3927] - Switch to SemVer version scheme
178201
* [NH-3932] - Merge() may fire unnecessary updates if collection and version mapping exists
179202
* [NH-3943] - Use NuGet to reference packages instead of local copies

0 commit comments

Comments
 (0)