forked from nhibernate/nhibernate-core
-
Notifications
You must be signed in to change notification settings - Fork 0
/
releasenotes.txt
5495 lines (4603 loc) · 292 KB
/
releasenotes.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Build 5.5.2
=============================
Release notes - NHibernate - Version 5.5.2
3 issues were resolved in this release, including CVE CVE-2024-39677 through the merge of 5.4.9.
** Bug
* #3536 MemberwiseClone should be virtual error in dotnet 9 preview 3
** Task
* #3578 Release 5.5.1
* #3577 Merge 5.4.9 into 5.5.x
Build 5.5.1
=============================
Release notes - NHibernate - Version 5.5.1
3 issues were resolved in this release.
** Bug
* #3465 Invalid SQL created for some joins in a subquery
** Task
* #3509 Release 5.5.1
* #3508 Merge 5.4.8 into 5.5.x
Build 5.5.0
=============================
Release notes - NHibernate - Version 5.5.0
##### Possible Breaking Changes #####
* `Object.Finalize` is no more proxified when the entity base class has a destructor. See #3205.
* Default not-found behavior now works correctly on many-to-many Criteria fetch. It now throws
ObjectNotFoundException exception for not found records. See #2687.
62 issues were resolved in this release.
** Bug
* #3413 Downgrade dependency System.Data.SQLite.Core 1.0.118 -> 1.0.117
* #3406 Fix orphan removal for detached one-to-one
* #3392 Partial fix fetching lazy property after Select in Linq
* #3360 Incorrect parameter length for char types in MicrosoftDataSqlClientDriver
* #3334 Exception executing HQL query with uncorrelated left joins in subselect
* #3327 HqlParser does not correctly negate EXISTS-nodes below an AND/OR
* #3325 Cascading orphan delete may not work on versioned entity
* #3311 NamedQuery ignores <query-param type="AnsiString"> and any other
* #3264 Fix collection filter on subclass columns
* #3256 Invalid SQL is generated for string Enum used in conditional LINQ
* #3205 `Object.Finalize` should not be proxiable
* #2687 Use table group joins for many-to-many in Criteria and Entity loaders
* #1267 NH-3047 - Lazy=no-proxy ignores join fetch
** New Feature
* #3242 Linq: add enum Equals and object Equals support
* #3165 Add support for Firebird 4
* #829 NH-3365 - Support for HasFlag method for enums with Flags attribute applied
** Improvement
* #3429 Explicit how to use advanced Redis strategies
* #3410 Remove redundant collection BeforeAssemble call from query cache
* #3398 Do not store mapping field in Configuration
* #3396 Get rid of select queries for each ManyToMany not found ignored element in Criteria and lazy loading
* #3395 Remove ConstantConverter
* #3394 Get rid of select queries for each ManyToMany not found ignored element in hql
* #3390 Enable Not node handling in HqlParser.NegateNode
* #3384 Improve path rule handling with reserved words in Hql.g
* #3377 Move HqlToken.PossibleId to HqlParser.IsPossibleId method and remove castings
* #3374 Simplify aggregateDistinctAll rule in Hql.g
* #3373 Refactor sequential select related members in AbstractEntityPersister
* #3341 Apply fromFragment processing only when required in ProcessDynamicFilterParameters
* #3340 SqlString.Trim should return the same instance for not modified string
* #3253 Do not throw for unknown type in hql case node
* #3230 Add cached boxed boolean values to BooleanType
* #3209 Allow custom query loader
** Task
* #3460 Merge 5.4.7 in master
* #3445 Release 5.5.0
* #3440 Update NUnit to v3.14.0
* #3423 Update actions/checkout action to v4
* #3420 Merge 5.4.6 in master
* #3411 Remove ISessionFactoryImplementor parameter from TableGroupJoinHelper
* #3409 Merge 5.4.5 in master
* #3387 Merge 5.4.4 in master
* #3379 Remove NHibernate.Example.Web project
* #3362 Update dependency NUnit3TestAdapter to v4.5.0
* #3361 Update dependency NUnit.Console to v3.16.3
* #3353 Migrate renovate config
* #3351 Merge 5.4.3 in master
* #3284 Update NHibernate.Caches to v5.9.0
* #3283 Update dependency NSubstitute to v5
* #3280 Add tests for Microsoft.Data.SqlClient driver
* #3275 Migrate dev packages to Cloudsmith
* #3241 Exclude generated files from Deepsource analisys
* #3236 Add MySQL8Dialect and MySQL8InnoDBDialect
* #3223 Simplify GitHub Actions Tests DB initialization
* #3206 Update actions/setup-dotnet action to v3
* #3202 Update dependency Npgsql to v7
* #3129 [Security] Update Oracle.ManagedDataAccess
* #3122 Update dependency FirebirdSql.Data.FirebirdClient to v9
* #3102 Update dependency Microsoft.Data.SqlClient to v3.1.3
* #3099 [Security] Update dependency System.Linq.Dynamic.Core to v1.3.3
* #3098 Update dependency System.Data.SQLite.Core to v1.0.118
* #3092 Update dependency Microsoft.AspNetCore.OData to v7.7.0
* #3088 Update NUnit to v3.13.3
** Tests
* #3412 Revive hql ParsingFixture
Build 5.4.9
=============================
Release notes - NHibernate - Version 5.4.9
6 issues were resolved in this release, including CVE-2024-39677.
** Bug
* #3547 Handle SQL injection vulnerabilities within ObjectToSQLString
** Task
* #3576 Release 5.4.9
* #3558 Migrate AppVeyor & TC builds to PostgreSQL 13
* #3545 Upgrade Npgsql to a non vulnerable version
* #3544 Upgrade vulnerable test dependencies
* #3517 Obsolete vulnerable literal AddColumn
Build 5.4.8
=============================
Release notes - NHibernate - Version 5.4.8
2 issues were resolved in this release.
** Bug
* #3489 Inserting multiple associations of the same entity fails
** Task
* #3507 Release 5.4.8
Build 5.4.7
=============================
Release notes - NHibernate - Version 5.4.7
3 issues were resolved in this release.
** Task
* #3459 Release 5.4.7
* #3458 Merge 5.3.20 into 5.4.x
* #3453 Migrate appveyor build to MySql 8
Build 5.4.6
=============================
Release notes - NHibernate - Version 5.4.6
2 issues were resolved in this release.
** Bug
* #3414 Reenable use of SelectClauseVisitor for subqueries
** Task
* #3419 Release 5.4.6
Build 5.4.5
=============================
Release notes - NHibernate - Version 5.4.5
2 issues were resolved in this release.
** Task
* #3408 Release 5.4.5
* #3407 Merge 5.3.19 in 5.4.x
Build 5.4.4
=============================
Release notes - NHibernate - Version 5.4.4
6 issues were resolved in this release.
** Bug
* #3359 2nd level cache GetMany ineffective for collections
* #3354 Invalid program generated by FieldInterceptorProxyBuilder for indexer property getter
* #3352 Fetch throws "could not resolve property" error for a property that is not mapped
** Improvement
* #3368 Allow internal entity classes/interfaces in .NET Standard 2.0 for field interceptor
** Task
* #3386 Release 5.4.4
* #3367 Update readme with actual dev build information for 5.4
Build 5.4.3
=============================
Release notes - NHibernate - Version 5.4.3
11 issues were resolved in this release.
** Bug
* #3317 Issue with components list lazy loading with not lazy association
* #3307 IsDirty performance hit since 5.4.0
* #3295 C# 8/11 Static interface members support
* #3291 Npgsql 6+ issues with null DateTime parameter types
* #3290 Incorrect fetch of Many-to-Many relation
* #3289 Fetching lazy loaded component causes n + 1 query when querying a subclass abstraction
* #3288 NullReferenceException is thrown when using Fetch
** Task
* #3349 Release 5.4.3
* #3348 Merge 5.3.18 in 5.4.x
* #3318 Merge 5.3.17 in 5.4.x
* #3302 Upgrade NUnit3TestAdapter to fix "Unknown framework version 7.0"
Build 5.4.2
=============================
Release notes - NHibernate - Version 5.4.2
6 issues were resolved in this release.
** Bug
* #3274 Improve LINQ Contains subquery parameter detection
* #3271 LINQ subqueries wrongly altered by SelectClauseVisitor
* #3263 Wrong alias in Where clause if using Fetch and scalar Select
* #3239 Incorrect SQL generated fetching many-to-many with subclasses
** New Feature
* #3251 MappingByCode: Support backfield property access
** Task
* #3281 Merge 5.3.16 in 5.4.x
* #3277 Release 5.4.2
Build 5.4.1
=============================
Release notes - NHibernate - Version 5.4.1
5 issues were resolved in this release.
** Bug
* #3216 Enable one-to-one optimistic lock handling in mapping
* #3215 Count(Distinct ...) does not work
* #3203 Fix a wrong example in configuration documentation
** Task
* #3232 Release 5.4.1
* #3227 Merge 5.3.15 in 5.4.x
As part of releasing 5.4.1, a missing 5.4.0 possible breaking change has been added, about
one-to-one associations and optimistic locking. See 5.4.0 possible breaking changes.
Build 5.4.0
=============================
Release notes - NHibernate - Version 5.4.0
** Highlights
* NHibernate has gained three new target frameworks: .Net 6, .Net Framework 4.8 and .Net Standard 2.1. NHibernate NuGet package
provides them, along with the older targets, .Net Core 2.0, .Net Framework 4.6.1 and .Net Standard 2.0. These new targets allow
some NHibernate optimizations for applications using them. The same limitations apply for .Net 6 and .Net Standard 2.1 as for
.Net Core 2.0 and .Net Standard 2.0, see NHibernate 5.1.0 release notes.
* A new batching strategy is available, minimizing the batching memory footprint. See #2959. Using it may increase CPU usage.
* 201 issues were resolved in this release.
##### Possible Breaking Changes #####
* One-to-one changes does now trigger a version increment, consistently with the default behavior of other kinds of
associations. See #3204.
* Linq and criteria queries on unmapped entities will throw instead of returning an empty result list. See #1106, #1095.
* The second level cache UpdateTimestampsCache does not use locks anymore. This may slightly increase the number of cases
where stale data is returned by the query cache. See #2742.
* Equality and hashcode access on uninitialized persistent collections will no more trigger their loading. See #2461.
* DB2CoreDriver now uses named parameters instead of positional ones. See #2546.
** Bug
* #3198 EntityUpdateAction increments version despite veto on update
* #3189 Support proxies of classes with init properties
* #3188 No way of detecting if AutoFlush performed in added AutoFlushEventListener
* #3176 Cached entity always fetches lazy properties with read-write concurrency strategy
* #3156 Evaluation failure when using `Nullable` without a value in LINQ
* #3150 LINQ query dynamic component by interface hangs the application
* #3109 Fix table group join issue with subclasses
* #3104 Inner Join fails with left Outer Join when referenced in Where clause
* #3076 Nested group by results in "A recognition error occured"
* #2968 Fix QueryStatistics.ExecutionAvgTime calculation
* #2827 Fix BadImageFormatException in dynamic proxies for abstract classes and interfaces
* #2822 "A recognition error ocurred" querying by a nullable component with more than N properties
* #2758 Fix AmbiguousMatchException in ClearPool with FirebirdClient 6.6.0 and above
* #2750 Using System.Transaction with IStatelessSession doesn't always flush batches to database
* #2738 Unused Left Join in LINQ throws exception
* #2717 MappingByCode discriminator column with string type throws exception
* #2675 Fix collection lazy loading with composite keys on subclass columns
* #2672 Linq query failure with left joins
* #2619 InvalidOperationException in ProxyGenerator for class with generic non-virtual method
* #2614 Obvious bug in two HQLQueryPlan classes with distinction Set
* #2594 Wrong SQL produced by DML LINQ when using a select clause for a property referencing the outer select
* #2555 Add spaces around concat operator
* #2552 One-to-one second level cache issue
* #2548 Mark DB2Dialect as not supporting null columns in unique constraint
* #2547 Fix paging in DB2Dialect
* #2540 Unable to use external predicate in subquery
* #2534 Fix asymmetrical SqlType.Equals
* #2454 ConditionalProjection containing the correlation to outer query fails to determine projection type
* #2330 join on multiple conditions
* #2201 Fetch Join generates incorrect SQL joins for the same entity type
* #2092 Projection and join fetch in hql leads to duplicated column aliases
* #1365 NH-3288 - Stale data checking does not work for one-to-one associations
* #1349 NH-3893 - HQL parse error of a query with 'left' or 'right' function
* #1326 NH-3622 - Fetching in query causes incorrect/missing joins in subquery
* #1316 NH-3530 - memory when using default_batch_fetch_size
* #1235 NH-2785 - StaleStateExceptions discarded on optional <join> table
* #1215 NH-2208 - Error with filters on joined-subclass as many-to-one
* #1209 NH-2049 - Error with filters on joined-subclass as one-to-one
* #1180 NH-3847 - ConditionalProjection throws "Both true and false projections must return the same types" when the types are the same
* #1106 NH-2978 - LINQ: Queries for unmapped entity types return empty result set
* #1075 NH-2239 - Wrong OrderBy in generated SQL when using ICriteria, Eager fetching and order by clauses in collection mappings
* #1072 NH-2174 - Invalid SQL is generated for OneToMany collections
* #1062 NH-1893 - Trigger-Identity with Dynamic Insert throws ORA-01036 (10g)
** New Feature
* #2959 Support Dynamic BatchFetchStyle
* #2744 Set which entities classes should never be cached, even indirectly
* #2737 Add more left join support
* #2645 Allow specifying the size of the query plan cache
* #2641 Avoid InvalidCastException with Oracle number high precision values
* #2551 Add support for joining a subquery in hql
* #2545 Table group joins for subclasses in Criteria
* #2486 Add Projections.Select in Criteria
* #2361 Table group joins support in hql
** Improvement
* #3184 Support caching queries with autodiscovered types
* #3177 Disable default caching in tests
* #3160 Allow internal entity classess/interfaces in .NET Standard 2.0
* #3133 Automatically generate async code on pull request
* #3127 Register IType CLR types as aliases
* #3116 Simplify SqlGenerator.FromFragmentSeparator
* #3114 Exclude generated async files from Deepsource analysis
* #3106 Skip table group join processing for implicit join
* #3091 Use GitReleaseManager dotnet tool
* #3083 Update SHFB in order to build documentation without MSBuild
* #3050 Add .NET Standard 2.1 target
* #3027 Avoid allocations on lock in SyncCacheLock
* #3000 Add .NET 6 and .NET Framework 4.8 targets
* #2990 Use inner join instead of implicit join for implied entity joins
* #2957 Avoid lambda compilation as much as possible
* #2948 Avoid lambda compilation for member access expressions in LINQ
* #2947 LINQ queries triggers JIT a bit too much
* #2920 Add parameter type to ADO exception
* #2804 Projections.Conditional for CASE expressions with multiple conditions
* #2752 Change cascade style for DefaultDirtyCheckEventListener to persist to avoid flushing the session
* #2742 Remove locks from UpdateTimestampsCache
* #2723 Avoid double param type guessing and better NULL parameter handling in LINQ
* #2706 Set the rolledBack flag when disposing active transactions
* #2700 Potential improvement to AliasToBeanResultTransformer
* #2621 Regression bug with enums used as parameter for string column
* #2571 Default value for CancellationToken in IQueryBatch.GetResultAsync
* #2568 Support internal entity classes by proxy factory
* #2556 Register right function for Firebird and PostgreSQL
* #2546 Enable named parameters on DB2CoreDriver
* #2539 Skip no longer needed moving ON condition to Where clause in LINQ
* #2538 Remove no longer needed alias substitution for filtered many-to-many collection in hql
* #2518 Support Aggregate subqueries with paging on MS SQL Server
* #2510 Remove OrderByClause from query models with Contains, All and Any result operators
* #2492 Replace casting with NodeType checks in Criteria ExpressionProcessor
* #2479 When using a paged sub-query in Linq, generates incorrect SQL
* #2461 Remove persistent collections Equals/GetHashCode overrides
* #2460 Simplify single alias retrieval for SimpleProjections
* #2448 Avoid lambda compilation for constant and member access expressions in Criteria
* #1285 NH-3249 - Cannot perform HQL with "COUNT(DISTINCT Date(s.Date))"
* #1244 NH-2868 - Generate method of ForeignGenerator fails with stateless sessions
* #1095 NH-2829 - QueryOver/Criteria should throw exception when querying against unmapped class
* #871 NH-3115 - Should de-duplicate joins when using fetching with where in LINQ query
* #869 NH-2952 - Setting the SqlCheck is not supported in the ByCode mapping
* #809 NH-2799 - Provide the CancelQuery() method in IStatelessSession
* #766 NH-3813 - Eager fetch on key-many-to-one relation adds inner joins to the query
* #715 NH-1040 - property-ref on joined-subclasses should work or error
** Task
* #3197 Update dependency System.Data.SqlClient to v4.8.5
* #3195 Release NHibernate 5.4
* #3161 Tell NuGet about the readme file
* #3147 Add `datetimex` keyword to SapSQLAnywhere17Dialect
* #3146 Run tests against Oracle XE 21c
* #3123 Update dependency Npgsql to v6
* #3121 Update dependency Microsoft.NETFramework.ReferenceAssemblies to v1.0.3
* #3119 Update actions/setup-dotnet action to v2
* #3118 Update actions/checkout action to v3
* #3117 Update dependency NSubstitute to v4.4.0
* #3111 Update dependency log4net to v2.0.15
* #3080 Replace Dependabot with Renovate
* #3063 Bump Oracle.ManagedDataAccess from 19.12.0 to 21.6.1
* #3061 Bump Oracle.ManagedDataAccess.Core from 2.19.120 to 3.21.61
* #3059 Bump log4net from 2.0.12 to 2.0.14
* #3057 Run tests using .NET 4.8
* #3017 Add deepsource.io code analysis
* #3002 Bump NUnit3TestAdapter from 4.1.0 to 4.2.1
* #2987 Disable auto rebasing for depandabot PRs
* #2951 Run tests on .NET 6
* #2946 Bump Microsoft.SourceLink.GitHub from 1.0.0 to 1.1.1
* #2936 Bump System.Data.SQLite.Core from 1.0.114.3 to 1.0.115.5
* #2911 Bump System.Data.SqlClient from 4.8.2 to 4.8.3
* #2898 Bump FirebirdSql.Data.FirebirdClient from 6.6.0 to 8.5.2
* #2887 Bump Oracle.ManagedDataAccess from 19.11.0 to 19.12.0
* #2886 Bump Oracle.ManagedDataAccess.Core from 2.19.110 to 2.19.120
* #2878 Bump System.Linq.Dynamic.Core from 1.2.10 to 1.2.12
* #2870 Bump MySql.Data from 8.0.25 to 8.0.26
* #2851 Cache Dialect in tests
* #2818 Bump Microsoft.Data.SqlClient from 2.1.3 to 3.0.0
* #2800 Bump System.Data.SQLite.Core from 1.0.113.7 to 1.0.114.2
* #2799 Bump Npgsql from 4.0.3 to 4.1.9
* #2796 Bump System.Linq.Dynamic.Core from 1.2.9 to 1.2.10
* #2790 Bump Microsoft.NET.Test.Sdk from 16.9.4 to 16.10.0
* #2786 Bump Microsoft.Data.SqlClient from 2.1.2 to 2.1.3
* #2771 Bump MySql.Data from 8.0.22 to 8.0.25
* #2770 Bump System.Data.SQLite.Core from 1.0.109.2 to 1.0.113.7
* #2765 Bump Microsoft.NETFramework.ReferenceAssemblies from 1.0.0 to 1.0.2
* #2759 Enable dependabot
* #2756 Update dependencies
* #2607 Merge 5.3.5
* #2605 Upgrade AsyncGenerator to 0.19.1
* #2593 Merge 5.3.4
* #2582 Remove no longer used code in QueryModelVisitor
* #2570 Update Relinq and LinFu links
* #2516 Suppress Codefactor single class per file rule for test project
* #2501 Upgrade MySql client and remove allowed failures on CI builds
** Tests
* #3024 Enable test accessing Component's Parent property in LINQ
* #2921 Fix test for SAP SQL Anywhere
* #2848 Add Oracle to GitHub Actions
* #2541 LINQ SELECT tests with WHERE subquery
* #2489 Improve CriteriaAssertFixture
* #2456 Test case for #1180 and improve NullableType.ToString
* #2242 Test case for NH-3972 - SQL error when selecting a column of a subclass when sibling classes have a column of the same name
Build 5.3.20
=============================
Release notes - NHibernate - Version 5.3.20
2 issues were resolved in this release.
** Bug
* #3438 DB2/400: ArgumentException Column 'SQL_TYPE_NAME' does not belong to table DataTypes
** Task
* #3454 Release 5.3.20
Build 5.3.19
=============================
Release notes - NHibernate - Version 5.3.19
2 issues were resolved in this release.
** Bug
* #3397 GenerateSchemaCreationScript creates many identical dialect instances
** Task
* #3405 Release 5.3.19
Build 5.3.18
=============================
Release notes - NHibernate - Version 5.3.18
3 issues were resolved in this release.
** Bug
* #3333 Lazy property with nosetter accessor remains uninitialized
* #3330 Linq with FetchLazyProperties() resets lazy property changes
** Task
* #3346 Release 5.3.18
Build 5.3.17
=============================
Release notes - NHibernate - Version 5.3.17
5 issues were resolved in this release.
** Bug
* #3306 Invalid SQL when referencing nullable entity in correlated subquery
* #3304 Fix SetSnapShot CopyTo variance failure
* #3294 Undefined join type failure with cross joins and Informix
** Task
* #3315 Release 5.3.17
* #3300 Backport handling of null DateTime parameters in Npgsql 6+
Build 5.3.16
=============================
Release notes - NHibernate - Version 5.3.16
3 issues were resolved in this release.
** Bug
* #3269 "Or" clause in a "where" condition returns a wrong result with not-found-ignore
* #3210 Wrong name value for L2 read-only cache warning on mutable
** Task
* #3276 Release 5.3.16
Build 5.3.15
=============================
Release notes - NHibernate - Version 5.3.15
4 issues were resolved in this release.
** Bug
* #3218 Failure of contains subquery with parameter
* #3187 Fix mixing implied implicit and left joins in HQL for v5.3
** Task
* #3225 Release 5.3.15
* #3222 Automatically generate async code on pull requests for 5.3
Build 5.3.14
=============================
Release notes - NHibernate - Version 5.3.14
3 issues were resolved in this release.
** Bug
* #3169 InvalidOperationException: This transformer is not initialized by Cached Query
* #3164 Fetching a lazy loaded component regression
** Task
* #3183 Release 5.3.14
Build 5.3.13
=============================
Release notes - NHibernate - Version 5.3.13
6 issues were resolved in this release.
** Bug
* #3134 ManyToMany - Tries to select not existing column in Mapping Table
* #3113 Join fails on Oracle9Dialect
* #3030 Memory leak named parameter holds entity references
** Improvement
* #3120 Guards against use of a disposed session factory
* #2994 Npgsql 6 is not compatible
** Task
* #3145 Release 5.3.13
Build 5.3.12
=============================
Release notes - NHibernate - Version 5.3.12
5 issues were resolved in this release.
** Bug
* #3046 Regression for filters on entity joins with many-to-one disabled
* #3029 InvalidOperationException on proxies with explicit implementation of a generic method
** Improvement
* #3043 Improve exception for query on delayed id
** Test
* #3035 Support tests in VS 2022
** Task
* #3044 Release 5.3.12
Build 5.3.11
=============================
Release notes - NHibernate - Version 5.3.11
12 issues were resolved in this release.
** Bug
* #3005 LINQ: Casting from object to TimeSpan throws
* #2988 Query issues when using not-found='ignore' in entity mapping
* #2965 Fix possible issue with logging for Linq Readonly tests
* #2963 Time is incompatible with bigint for TimeAsTimeSpanType
* #2937 NRE in linq processing of custom components
* #2928 Session.Refresh when entity is IFieldInterceptorAccessor throws a MappingException
* #2904 SQL query result not retrieved from second level cache
* #2876 Schema validation not working with NpgSql v5
* #2862 NHibernate AsyncReaderWriterLock stalls under load
* #2727 The session.Load(obj, id) overload can't handle proxies
** Task
* #3019 Release 5.3.11
* #2984 Bump AsyncGenerator to 0.18.3 for 5.3 branch with fix for .net 6
Build 5.3.10
=============================
Release notes - NHibernate - Version 5.3.10
11 issues were resolved in this release.
** Bug
* #2891 Fix nullable entity comparison with null and implicit/cross joins
* #2885 Do not serialize unnecessary members in SessionFactory
* #2882 Fix ArgumentNullException when provider is unable to open a connection
* #2871 If DbTransaction.Dispose throws an exception, the AdoTransaction is left in an inconsistent state
* #2860 Null reference when calling Trim() on interpolated string containing null property
* #2858 Casting to object and back to interface in Subquery causes incorrect SQL
* #2856 Distinct on Composite User Type property fails
* #2855 Error log from ReflectHelper.TypeFromAssembly() on Linq query
* #2611 One-to-zero-or-one relation not returning data when checking for null
* #1962 Failing Linq query on element index
** Task
* #2915 Release 5.3.10
Build 5.3.9
=============================
Release notes - NHibernate - Version 5.3.9
11 issues were resolved in this release.
** Bug
* #2835 Fix ExecuteWorkInIsolation ignores MultiTenancy configuration
* #2811 Remove session finalizer
* #2805 Model not mapped Exception
* #2802 ArgumentException on session Flush
* #2792 Arithmetic operations adding casts to SQLite that cause incorrect results
* #2791 Custom Equality Fails
* #2772 LINQ query returns NULL instead of expected result
** Test
* #2841 Fix possible test failure for SqlServer 2019
* #2814 Fix intermittent Firebird test errors
* #2812 Replace Travis CI with GitHub Actions
** Task
* #2837 Release 5.3.9
Build 5.3.8
=============================
Release notes - NHibernate - Version 5.3.8
6 issues were resolved in this release.
** Bug
* #2710 Filtered Entity Dml Update Throws Collection was modified
* #2708 MappedAs throws when called on a Convert UnaryExpression
* #2707 Don't currently support idents of type X
* #2673 Exception when using BinaryFormatter to deserialize entities with initialized proxies in associations
* #1264 NH-3005 - NHibernate.Hql.Ast.HqlIdent..ctor throws Don't currently support idents of type Date
** Task
* #2721 Release 5.3.8
Build 5.3.7
=============================
Release notes - NHibernate - Version 5.3.7
5 issues were resolved in this release.
** Bug
* #2704 IEnhancedUserType from string to bool fails in some circumstances
* #2702 LINQ projection of nullable enum with list fails
* #2693 Invalid parameter conversion with group by
* #2688 NoViableAltException in a delete on a many-to-one id
** Task
* #2701 Release 5.3.7
Build 5.3.6
=============================
Release notes - NHibernate - Version 5.3.6
12 issues were resolved in this release.
** Bug
* #2659 IQueryable<T> filter by subquery gives "Item with Same Key has already been added"
* #2649 Invalid parameter conversion for enums mapped in sub-classes
* #2646 Invalid generated sql with linq any in select and composite keys
* #2642 Linq expression parser removes required Convert nodes
* #2631 IndexOutOfRange exception with One-to-One mapping
* #2627 Null reference on Merge for detached unsaved entity
* #2626 WHERE IN SELECT uses wrong column
* #2608 Delay entity insert may fail with Merge
* #2544 Recognition error occurs using System.Linq.Queryable.Contains
** Improvement
* #2677 Missing ConfigureAwait in FutureEnumerable.GetEnumerableAsync
* #2656 Make sure dbcommand is disposed
** Task
* #2676 Release 5.3.6
As part of releasing 5.3.6, one missing 5.3.0 possible breaking change has been added, about
Merge no more triggering immediate generation of identifier. See 5.3.0 possible breaking changes.
Build 5.3.5
=============================
Release notes - NHibernate - Version 5.3.5
2 issues were resolved in this release.
** Bug
* #2599 WrongClassException in Linq query
** Task
* #2606 Release 5.3.5
Build 5.3.4
=============================
Release notes - NHibernate - Version 5.3.4
6 issues were resolved in this release.
** Bug
* #2580 InvalidWithClauseException when join polymorphic entity
* #2559 Regression in caching linq query with ThenFetchMany statement.
* #2549 ApplyFilter does not work on join statements in LINQ
* #2537 Unable to cast "System.Linq.Expressions.UnaryExpression" to "System.Linq.Expressions.LambdaExpression".
** Task
* #2578 Add missing possible breaking changes for #2365
* #2587 Release 5.3.4
As part of releasing 5.3.4, one missing 5.3.0 possible breaking change has been added, about
custom method generators for Linq. See 5.3.0 possible breaking changes.
Build 5.3.3
=============================
Release notes - NHibernate - Version 5.3.3
16 issues were resolved in this release.
** Bug
* #2519 Fix parameter caching for Linq provider
* #2515 InvalidCastException for Linq query with subquery
* #2514 Entity with field interceptor are not correctly passed as Linq parameters
* #2512 Linq queries with a condition after a projection on a collection fail
* #2511 Linq Fetch over component after fetching a many-to-one throws exception
* #2508 OnPreUpdateCollection - Passed entity instance X is not of expected type Y
* #2499 Cast operation fails when an enum is mapped as an AnsiString
* #2490 Unnecessary cast in sql with Linq are causing performance issues
* #2488 Fix parameter detection for Equals and CompareTo methods for Linq provider
* #2485 Throw entity not mapped exception for entity join in hql if possible
* #2484 Entity Joins are not polymorphic in hql
* #2476 Hashset add returns true instead of false
* #2474 Fetch all lazy properties when entity is already loaded fails
* #2471 AsQueryable() on collection throws if applied after Where statement
** Task
* #2482 Add missing possible breaking changes for #2010
* #2527 Release 5.3.3
As part of releasing 5.3.3, two missing 5.3.0 possible breaking changes have been added, about
uninitialized extra lazy collections and SQLite schema validation. See 5.3.0 possible breaking changes.
Build 5.3.2
=============================
Release notes - NHibernate - Version 5.3.2
6 issues were resolved in this release.
** Bug
* #2468 Null reference at NHibernate.Util.AsyncReaderWriterLock.ReadLock()
* #2465 Linq contains on a value collection is failing
* #2463 Path expected for join
* #2458 Evaluatable expressions with parameters are no more pre-evaluated
* #2453 Fail to cast enum as nvarchar for Linq Contains
** Task
* #2472 Release 5.3.2
Build 5.3.1
=============================
Release notes - NHibernate - Version 5.3.1
7 issues were resolved in this release.
** Bug
* #2445 LINQ queries with a cast from int to uint fail
* #2440 InvalidCastException for Future Criteria with aliased fetches
* #2439 Invalid parameter conversion for enums
* #2437 Invalid cast on nullable custom type with Linq
** Task
* #2450 Release 5.3.1
* #2436 Fix old http://nhibernate.info URIs
* #2435 Fix iconUrl warning
Build 5.3.0
=============================
Release notes - NHibernate - Version 5.3.0
220 issues were resolved in this release.
##### Possible Breaking Changes #####
* A distributed cache may hold conflicting timestamps after upgrade for as much as twelve hours.
Consider flushing a distributed cache after upgrade to avoid any issue. Do not share a distributed
cache with applications using an earlier version of NHibernate.
* The counter id generator may generate conflicting ids for as much as twelve hours after upgrade.
* `update` and `delete` statements will now take into account any enabled filter on the entities
they update or delete, while previously they were ignoring them. (`insert` statements will also take
them into account, but previously they were failing instead of ignoring enabled filters.)
* ISession.Persist and ISession.Merge will no more trigger immediate generation of identifier.
* Bags will no more be loaded with "null" entities, they will be filtered out.
* Setting the value of an uninitialized lazy property will no more trigger loading of all the lazy
properties of the entity.
* If an uninitialized lazy property has got its value set, without any other subsequent lazy property
load on the entity, a dynamic update will occur on flush, even if the entity has dynamic updates
disabled. This update will occur even if the set value is identical to the currently persisted
property value.
* Assigning an uninitialized proxy to a `no-proxy` property will no more trigger the proxy
initialization. Moreover, reading the property afterwards will no more unwrap the assigned proxy,
but will yield it.
* A class having an explicitly implemented interface declaring a member with the same name than the
class id will have its proxies trigger a lazy load if the interface "id" is accessed.
* SQLite: in order to avoid a floating point division bug losing the fractional part, decimal are now
stored as `REAL` instead of `NUMERIC`. Both are binary floating point types, excepted that `NUMERIC`
stores integral values as `INTEGER`. This change may cause big integral decimal values to lose more
precision in SQLite.
* SQLite: non supported SQL type names previously used by NHibernate, resulting in unexpected actual typing,
have been fixed. This causes databases generated by a previous NHibernate version to fail schema validation
by 5.3 or higher versions. See #2507 for more information.
* Custom dialects used for databases that do not support cross join will have to override
`SupportsCrossJoin` property and set it to `false`.
* `VisitorParameters.ConstantToParameterMap` may contain the same parameter for multiple constant
expressions.
* `ICache` caches yielded by the session factory will be `CacheBase` wrappers around the cache actually
provided by the cache provider, if it was not deriving from `CacheBase`.
* Calling `IList.RemoveAt` or `IList<>.RemoveAt` on an uninitialized list with a negative number
will now throw an `ArgumentOutOfRangeException`.
* Calling `IList.RemoveAt` or `IList<>.RemoveAt` on an uninitialized list mapped as `lazy="extra"`
with a number that is equal or higher that the current collection size will now throw an
`ArgumentOutOfRangeException`.
* Calling `IList.Insert` or `IList<>.Insert` on an uninitialized list with a negative number will
now throw an `ArgumentOutOfRangeException`.
* Calling `IList.Insert` or `IList<>.Insert` on an uninitialized list mapped as `lazy="extra"`
with a number that is higher that the current collection size will now throw an
`ArgumentOutOfRangeException`.
* Getting or setting a value with `IList.this[int index]` or `IList<>.this[int index]` on an uninitialized
list with a negative number will now throw an `ArgumentOutOfRangeException`.
* Setting a value with `IList.this[int index]` or `IList<>.this[int index]` on an uninitialized list
mapped as `lazy="extra"` with a number that is equal or higher that the current collection size will now
throw an `ArgumentOutOfRangeException`.
* Calling `IDictionary<,>.Add` or `ICollection<>.Add` on an uninitialized map mapped as `lazy="extra"` with
a key that already exists will now throw an `ArgumentException`.
* Calling `IDictionary<,>.Remove` or `ICollection<>.Remove` on an uninitialized map mapped as `lazy="extra"`
with a key that does not exist will now return false.
* Map dirtiness is now evaluated by `EqualityComparer<TValue>.Default` when setting an existing key value
with `IDictionary<,>.this[]` on an initialized map.
* Calling `ISet<>.Add` on an uninitialized set mapped as `lazy="extra"` with a transient element that
already exists in the set will now return false.
* Calling `ISet<>.Add` or `ICollection<>.Add` on an uninitialized set mapped as `lazy="true"` with a
transient element that does not override `Equals` method will not initialize the collection.
* Linq custom generators deriving from `BaseHqlGeneratorForMethod` should override the
`TryGetCollectionParameter` method if they have to support parameter lists.
** Bug
* #2425 NRE with nullable subselect value in Linq
* #2421 Chapter 26: Best Practices, error about identifier recommendations
* #2410 Second level cache failures with CoreMemoryCaches
* #2380 OData NotSupportedException MemberInit on base class member
* #2365 Add Linq parameter type detection
* #2346 Fix SQLite typing
* #2336 Intermittent null reference exception on CloseConnection
* #2324 Update IIsEntityDecider to use ExpressionsHelper.TryGetMappedType
* #2319 Upgrade AsyncGenerator to 0.18.1
* #2299 Proper query plan caching for DML LINQ queries
* #2286 Wrong sql if used joined-subclass with filters for key columns
* #2278 IInterceptor.OnPrepareStatement results not used in insert/update commands
* #2266 Fix comment for Restrictions.IsEmpty
* #2255 Fix a flaky test
* #2245 Add sqlite.binaryguid to configuration schema
* #2244 SelectMany Linq extension does not work correctly - subsequent FetchMany fails
* #2233 Fix possible issue with async code for delayed entity inserts
* #2231 Invalid alias name used in Linq Joins
* #2222 NHibernate query plan for Linq Dml is not cached
* #2219 Fix BuildTool output path
* #2215 Fix ShowBuildMenu.sh
* #2181 Skip null entities when bag is populated
* #2164 Do not call GC.SuppressFinalize from finalizer thread