-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathchanges.xml
More file actions
813 lines (803 loc) · 106 KB
/
Copy pathchanges.xml
File metadata and controls
813 lines (803 loc) · 106 KB
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
<?xml version="1.0"?>
<document xmlns="http://maven.apache.org/changes/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/changes/2.0.0 https://maven.apache.org/xsd/changes-2.0.0.xsd">
<properties>
<title>Changes</title>
<!-- Commented out as recent versions of maven-changes-plugin generate
errors parsing multiple author tags
<author email="epugh@upstate.com">Eric Pugh</author>
<author email="mlaflamm@users.sourceforge.net">Manuel Laflamme</author>
<author email="dbunit@felipeal.net">Felipe Leme</author>
<author email="jeffjensen@users.sourceforge.net">Jeff Jensen</author> -->
</properties>
<body>
<release version="3.4.0-SNAPSHOT" date="TBD" description="Un-skip and strengthen remaining disabled and no-op tests: implement DefaultPrepAndExpectedTestCaseTest stubs, convert ForwardOnlyDataSetTest no-ops to assertThrows, implement ExcludeTableFilterTest reverse-order tests, relocate ToStringViewTest's package-blocked cases, restore commented-out unit tests in CsvParserTest/FlatXmlTableTest/BiDirectionalEdgesDepthFirstSearchTest, implement ReplacementTableTest.testGetMissingValue, add assertions to applyColumnFilters tests, fix DatabaseTestCase tear-down exceptions obscuring test failures, rewrite obsolete DbUnitTaskIT queryset test, delete two dead commented-out test fragments, stop swallowing failures in PostgreSQL xtest* methods, add CachingConnectionProvider for opt-in IDatabaseConnection reuse across test methods, reduce DefaultPrepAndExpectedTestCase's per-test connection churn, fix DefaultPrepAndExpectedTestCase.runTest() losing a test failure to a cleanup exception, fix DefaultPrepAndExpectedTestCase column-name matching under non-English default locales, harmonize DefaultPrepAndExpectedTestCase's null-databaseTester handling on IllegalStateException, apply code-quality cleanups to DefaultPrepAndExpectedTestCase, pin remaining identifier case folding to Locale.ENGLISH for Turkish-family default locales, fix NullPointerException exporting NO_VALUE cells to flat XML and YAML dumping the raw sentinel, fix SQLHelper's schema-correction notice being silently dropped by a guard/call level mismatch, close BytesDataType file/URL streams and read them in chunks, fail fast on invalid BytesDataType [text]/[base64] values instead of silently storing garbage or NULL, fix QualifiedTableName escaping a single-character segment before a dot as part of the next segment, fix the Ant export step rejecting an uppercase CSV format and leaving an empty output file for unsupported formats, preserve the verify failure as suppressed when DefaultPrepAndExpectedTestCase.postTest's cleanup also fails, fix InsertOperation binding NULL into NOT NULL DEFAULT columns depending on row order, round-trip supplementary characters and replace unrepresentable control characters with U+FFFD in XML export, fix TimestampDataType mis-encoding pre-epoch fractional-second timestamps with a timezone suffix, roll back TransactionOperation on Error instead of implicitly committing, fix XlsTable negative row count and missing-row NullPointerException, pin YAML/DTD/OracleXMLType writer charsets to UTF-8 matching their readers, skip a redundant per-table metadata query in DatabaseDataSet.getTableMetaData, guard or remove per-cell debug logging in the datatype package, fix a data race that could mask the real producer failure in StreamingIterator, fix CsvParser duplicating the continuation line on a short multi-line parse, use DatabaseConfig.getFeature for the qualified-table-names check in DatabaseDataSet, fix FileHelper.copyFile leaking the source stream when the destination cannot be opened, keep DefaultPrepAndExpectedTestCase.configureTest's connection open for the test lifecycle instead of closing and immediately reacquiring it, remove a dead field and harden the close path in RefreshOperation, route Base64's stderr diagnostics through slf4j, remove XmlWriter's dead setEncoding(String) overload, fix CsvProducer truncating table names containing .csv before the final suffix, remove unused duplicate slf4jVersion/snakeYamlVersion pom properties, fix SQLHelper.logDebugIfValueChanged brace indentation, centralize duplicated Turkish-locale test setup into a shared @TurkishDefaultLocale JUnit 5 extension, fix TimestampDataType writing the wrong instant to TIMESTAMP WITH TIME ZONE columns when some JDBC drivers tag the value with the JVM's default time zone instead of the dataset's own time zone">
<action dev="jeffjensen" type="test" issue="797" system="github" due-to="jeffjensen">
Implement the 8 empty, @Disabled DefaultPrepAndExpectedTestCaseTest stub methods covering preTest, postTest, setupData, verifyData, cleanupData, and makeCompositeDataSet, using the class's existing Mockito-based connection harness. Move the test fixture's databaseTester/tc construction from field initializers to a @BeforeEach method so @Mock injection (MockitoExtension) completes before they are built.
</action>
<action dev="jeffjensen" type="test" issue="797" system="github" due-to="jeffjensen">
Convert 8 empty, @Disabled ForwardOnlyDataSetTest methods into assertThrows assertions proving ForwardOnlyDataSet's documented unsupported-operation contract, matching the pattern already used by the class's other overrides.
</action>
<action dev="jeffjensen" type="test" issue="797" system="github" due-to="jeffjensen">
Implement ExcludeTableFilterTest's 2 empty, @Disabled reverse-order tests, ported from the equivalent IncludeTableFilterTest methods.
</action>
<action dev="jeffjensen" type="test" issue="797" system="github" due-to="jeffjensen">
Move ToStringViewTest's testStreamingTable/testXlsTable out of their dead @Disabled state into new StreamingTableToStringTest and XlsTableToStringTest classes in the same package as StreamingTable/XlsTable, since both are only visible there.
</action>
<action dev="jeffjensen" type="test" issue="797" system="github" due-to="jeffjensen">
Restore 8 commented-out unit test methods across CsvParserTest, FlatXmlTableTest, and BiDirectionalEdgesDepthFirstSearchTest, migrating them to Jupiter/AssertJ. FlatXmlTableTest's unknown-column case now asserts the current, intentional NoSuchColumnException instead of the stale null-return expectation it originally encoded.
</action>
<action dev="jeffjensen" type="test" issue="797" system="github" due-to="jeffjensen">
Implement ReplacementTableTest.testGetMissingValue, which previously asserted nothing, mirroring the MISSING_VALUES fixture pattern already used by the sibling FlatXmlTableTest/XlsTableTest overrides of the same inherited test.
</action>
<action dev="jeffjensen" type="test" issue="797" system="github" due-to="jeffjensen">
Add real assertions to DefaultPrepAndExpectedTestCaseTest.testApplyColumnFiltersBothNull/BothNotNull, which previously discarded applyColumnFilters()'s result and asserted nothing, and document via the not-null case that include filtering is applied before exclude filtering.
</action>
<action dev="jeffjensen" type="fix" issue="141" system="github" due-to="jeffjensen">
Add DatabaseTestCase.tearDown(Throwable), for use when a test failure is already in flight, that attaches a tear-down operation failure to the original failure via addSuppressed instead of letting it replace and hide the original. The existing no-arg tearDown() is unchanged.
</action>
<action dev="jeffjensen" type="fix" issue="141" system="github" due-to="jeffjensen">
Fix DefaultPrepAndExpectedTestCase.runTest() losing the original test failure when the cleanup path (postTest(false)) also throws: attach the cleanup failure to the original via addSuppressed instead of letting it replace and hide the real test failure, mirroring DatabaseTestCase.tearDown(Throwable).
</action>
<action dev="jeffjensen" type="test" issue="797" system="github" due-to="jeffjensen">
Rewrite DbUnitTaskIT's obsolete queryset id/refid test: it asserted the old behavior of throwing a BuildException when both attributes are set, but Ant resolves refid first and no longer errors on the combination; the test now asserts today's actual, no-throw behavior.
</action>
<action dev="jeffjensen" type="test" issue="797" system="github" due-to="jeffjensen">
Delete two commented-out test fragments that encoded no restorable behavior: InsertOperationIT's testExecuteNullAsNone referenced DatabaseConfig.FEATURE_NULL_AS_NONE, which does not exist anywhere in production code (an apparently never-implemented feature; the NO_VALUE-omission behavior it targeted is already covered by testExecute_withNoValueFields_omitsNoValueColumnsFromInsertSql in InsertOperationTest), and DatabaseDataSetIT's testGetTableNamesAndCaseSensitive was two lines cut off mid-statement with no coherent assertion, probing raw DatabaseMetaData introspection that dbunit's own case-sensitivity handling (FEATURE_CASE_SENSITIVE_TABLE_NAMES) does not use.
</action>
<action dev="jeffjensen" type="test" issue="797" system="github" due-to="jeffjensen">
Rename the stale JUnit3-era xtest*-prefixed methods in PostgresSQLOidIT, PostgresqlUuidIT, and SQLHelperDomainPostgreSQLIT to test*, and remove the try/catch wrapper around each body that reported a nonsense fixed message instead of the real failure whenever a non-assertion exception occurred (AssertionError is not an Exception, so real assertion failures already propagated normally; only the underlying operation's own failures were obscured). Verified against a Dockerized postgres:16.3.
</action>
<action dev="jeffjensen" type="add" issue="799" system="github" due-to="jeffjensen">
Add CachingConnectionProvider: an opt-in, thread-safe cache for one IDatabaseConnection (and therefore its metadata cache) that detects a dead or expired connection and transparently replaces it instead of returning it or failing. Wire it into JdbcDatabaseTester, DataSourceDatabaseTester, JndiDatabaseTester, PropertiesBasedJdbcDatabaseTester, and DefaultDatabaseTester via new, additive constructor overloads, making the existing manual DefaultDatabaseTester + NO_OP_OPERATION_LISTENER reuse pattern safe to opt into without hand-wiring a static connection field. Update the FAQ's performance and keep-connection-open entries accordingly. Verified against hsqldb, h2, derby, and postgresql.
</action>
<action dev="jeffjensen" type="update" issue="800" system="github" due-to="jeffjensen">
Reduce DefaultPrepAndExpectedTestCase's per-test connection churn: setupData(), verifyData(), and cleanupData() now share one IDatabaseConnection acquired lazily and closed once by cleanupData(), instead of each step acquiring and often closing its own; configureTest() caches its resolved FEATURE_CASE_SENSITIVE_TABLE_NAMES value so cleanupData() no longer needs a second connection just to re-read it. Together these cut a 4-5-connection-per-test lifecycle down to 1-2. Add setCloseConnectionAfterTest(boolean), defaulting to true, so a databaseTester sharing a CachingConnectionProvider across test methods can opt this class out of closing a connection other tests still expect to reuse. Verified against all 9 supported databases (hsqldb, h2, derby, postgresql, mysql, mssql, db2, oracle-18, oracle-23).
</action>
<action dev="jeffjensen" type="fix" issue="206" system="github" due-to="jeffjensen">
Fix DefaultPrepAndExpectedTestCase.makeExpectedTableColumns() column-name matching to use Locale.ENGLISH instead of the JVM default locale, so a Turkish default locale's dotless-i no longer breaks matching differently-cased ASCII column names, matching DatabaseDataSet.SchemaSet.normalizeSchema's existing convention.
</action>
<action dev="jeffjensen" type="refactor" issue="802" system="github" due-to="jeffjensen">
Harmonize DefaultPrepAndExpectedTestCase.getSetUpOperation()/getTearDownOperation() on throwing IllegalStateException for a null databaseTester, matching setupData()/verifyData()/cleanupData(), instead of JUnit's assertNotNull()/AssertionError; remove the now-unused assertNotNull import.
</action>
<action dev="jeffjensen" type="refactor" issue="802" system="github" due-to="jeffjensen">
Code-quality cleanups in DefaultPrepAndExpectedTestCase: use generics in makeCompositeDataSet() instead of a raw List and unchecked array cast, move applyColumnFilters()'s null check ahead of first use, log include/exclude column filters with Arrays.toString() instead of a confusing single-element Object[] wrapper, and document the legacy JUnit-3-era tearDown() hook's non-invocation under JUnit 5 and its double-cleanup risk.
</action>
<action dev="jeffjensen" type="fix" issue="452" system="github" due-to="jeffjensen">
Pin remaining identifier case folding to Locale.ENGLISH so Turkish-family default locales no longer break table/column matching, filtering, and extended-syntax command parsing.
</action>
<action dev="jeffjensen" type="fix" issue="803" system="github" due-to="jeffjensen">
Fix NullPointerException exporting datasets containing NO_VALUE cells to flat XML, and stop YAML export dumping the raw NO_VALUE sentinel.
</action>
<action dev="jeffjensen" type="fix" issue="804" system="github" due-to="jeffjensen">
Fix SQLHelper.logInfoIfValueChanged's isInfoEnabled() guard not matching its logger.debug() call, which silently dropped the schema-correction notice whenever INFO was enabled but DEBUG was not; the guard now checks isDebugEnabled() to match, keeping the notice at its original DEBUG level.
</action>
<action dev="jeffjensen" type="fix" issue="805" system="github" due-to="jeffjensen">
Close file/URL input streams in BytesDataType (handle leak; Windows file locking) and read them in chunks instead of per byte.
</action>
<action dev="jeffjensen" type="fix" issue="806" system="github" due-to="jeffjensen">
BytesDataType now throws TypeCastException for an invalid [text] encoding id or corrupt [base64] input instead of storing error text or NULL, and the plain-text fallback consistently uses UTF-8. Behavior change: datasets that previously "worked" by silently inserting garbage/NULL now fail fast, and fallback text bytes change on platforms whose default charset is not UTF-8.
</action>
<action dev="jeffjensen" type="fix" issue="807" system="github" due-to="jeffjensen">
Fix QualifiedTableName escaping treating a single-character segment immediately before a dot as part of the following segment instead of splitting them.
</action>
<action dev="jeffjensen" type="fix" issue="808" system="github" due-to="jeffjensen">
Fix the Ant export step rejecting format="CSV" in uppercase and leaving an empty output file behind for unsupported formats. Also, an unsupported format is now rejected before the database connection is queried for the export dataset, instead of after, since format validity doesn't depend on the connection.
</action>
<action dev="jeffjensen" type="fix" issue="808" system="github" due-to="jeffjensen">
Fix Export.setFormat()'s IllegalArgumentException message omitting 'csv' from the list of valid formats, even though csv has always been accepted.
</action>
<action dev="jeffjensen" type="fix" issue="809" system="github" due-to="jeffjensen">
DefaultPrepAndExpectedTestCase.postTest now attaches a verify failure as suppressed on the cleanup exception that deliberately shadows it, instead of losing it.
</action>
<action dev="jeffjensen" type="fix" issue="810" system="github" due-to="jeffjensen">
Fix InsertOperation reusing a statement across rows whose null-with-column-default shape differs, which bound NULL into NOT NULL DEFAULT columns depending on row order.
</action>
<action dev="jeffjensen" type="fix" issue="811" system="github" due-to="jeffjensen">
XML export now round-trips supplementary characters (previously written as invalid surrogate entities) and replaces XML-unrepresentable control characters with U+FFFD plus a warning (previously written raw, producing unparseable files).
</action>
<action dev="jeffjensen" type="fix" issue="812" system="github" due-to="jeffjensen">
Fix TimestampDataType timezone application mis-encoding pre-epoch fractional-second timestamps and throwing on negative encoded times.
</action>
<action dev="jeffjensen" type="fix" issue="813" system="github" due-to="jeffjensen">
TransactionOperation now rolls back when an Error propagates instead of implicitly committing partial work via auto-commit restoration. Also, in all four rollback catch blocks (DatabaseUnitException, SQLException, RuntimeException, and Error), a rollback failure is now attached to the original exception as suppressed instead of replacing it, via a shared handleException() helper.
</action>
<action dev="jeffjensen" type="fix" issue="814" system="github" due-to="jeffjensen">
XlsTable now reports 0 rows for an empty sheet instead of -1 and returns nulls for physically-missing rows instead of throwing NullPointerException.
</action>
<action dev="jeffjensen" type="fix" issue="815" system="github" due-to="jeffjensen">
YAML and flat-DTD exports, and OracleXMLTypeDataType's internal byte/String conversions, are now UTF-8 explicitly instead of the platform default charset, matching what their readers decode; previously non-ASCII exports were unreadable on platforms with a non-UTF-8 default charset.
</action>
<action dev="jeffjensen" type="update" issue="816" system="github" due-to="jeffjensen">
Skip a redundant per-table getTables metadata query in DatabaseDataSet.getTableMetaData; existence is already proven by the dataset's table enumeration.
</action>
<action dev="jeffjensen" type="update" issue="820" system="github" due-to="jeffjensen">
Guard or remove per-cell debug logging in the datatype package to eliminate autoboxing overhead on hot read/write paths.
</action>
<action dev="jeffjensen" type="fix" issue="821" system="github" due-to="jeffjensen">
Fix a data race that could mask the real producer failure behind a generic interruption error in StreamingIterator.
</action>
<action dev="jeffjensen" type="fix" issue="822" system="github" due-to="jeffjensen">
Fix CsvParser duplicating the continuation line in its buffer when a multi-line field completes with too few columns, garbling the error report or fabricating data.
</action>
<action dev="jeffjensen" type="update" issue="823" system="github" due-to="jeffjensen">
Use DatabaseConfig.getFeature for the qualified-table-names check in DatabaseDataSet instead of a Boolean reference comparison.
</action>
<action dev="jeffjensen" type="fix" issue="824" system="github" due-to="jeffjensen">
Fix FileHelper.copyFile leaking the source stream when the destination cannot be opened.
</action>
<action dev="jeffjensen" type="update" issue="825" system="github" due-to="jeffjensen">
DefaultPrepAndExpectedTestCase.configureTest now keeps its lazily-acquired connection open for the test lifecycle instead of closing it for setupData to immediately reacquire, completing the one-connection-per-test reduction; like setupData/verifyData, a standalone configureTest call leaves the connection open until cleanupData.
</action>
<action dev="jeffjensen" type="update" issue="826" system="github" due-to="jeffjensen">
Remove the dead, never-assigned PreparedStatement field from RefreshOperation's UpdateRowOperation, and close both row operations in execute's cleanup even if the first close fails.
</action>
<action dev="jeffjensen" type="update" issue="827" system="github" due-to="jeffjensen">
Route Base64's bad-input console diagnostic through its slf4j logger at WARN instead of System.err.println, and remove four e.printStackTrace() calls that duplicated an adjacent logger.error() call to stderr.
</action>
<action dev="jeffjensen" type="update" issue="828" system="github" due-to="jeffjensen">
Remove XmlWriter's dead private setEncoding(String) overload, unreachable from setWriter and never matching the common "UTF-8" spelling even if it were called.
</action>
<action dev="jeffjensen" type="fix" issue="829" system="github" due-to="jeffjensen">
Fix CsvProducer truncating a table name at the first ".csv" occurrence instead of the last, which misread a table named e.g. a.csvx back as a on round-trip; also null-safe the NULL-token comparison.
</action>
<action dev="jeffjensen" type="update" issue="830" system="github" due-to="jeffjensen">
Remove the unused, stale slf4jVersion and snakeYamlVersion pom properties, superseded by the actually-used slf4jApiVersion and snakeyamlVersion.
</action>
<action dev="jeffjensen" type="fix" issue="832" system="github" due-to="jeffjensen">
Reindent SQLHelper.logDebugIfValueChanged's closing braces to match their actual nesting depth; cosmetic only, brace count was already balanced.
</action>
<action dev="jeffjensen" type="test" issue="833" system="github" due-to="jeffjensen">
Centralize the duplicated Turkish-locale save/mutate/restore boilerplate across 13 test classes into a shared @TurkishDefaultLocale JUnit 5 extension.
</action>
<action dev="jeffjensen" type="fix" issue="831" system="github" due-to="yoshida16729438">
Fix TimestampDataType writing the wrong instant to TIMESTAMP WITH TIME ZONE columns: the issue #711 fix's Calendar-based setTimestamp(Timestamp, Calendar) call let some JDBC drivers tag the stored value with the JVM's default time zone instead of the dataset's own time zone, silently discarding it. Detect such columns via PreparedStatement.getParameterMetaData() and write them with setObject(OffsetDateTime) instead, which drivers supporting the SQL type map unambiguously; columns without a time zone keep the existing Calendar-based behavior from #711 unchanged.
</action>
</release>
<release version="3.3.0" date="Jul 22, 2026" description="Performance improvements and fixes: speed up column index lookups, suppress RowOutOfBoundsException stack traces, buffer XML, CSV, DTD, and YAML output, cache DecimalFormat in XlsTable, restore DepthFirstSearch tests, fix DepthFirstSearch depth limit, cache DatabaseSequenceFilter dependency edges, topological sort in DatabaseSequenceFilter, single column-metadata fetch in ResultSetTableMetaData, precompute sort keys in SortedTable, reduce assertion loop overhead, reduce ReplacementTable scanning, flatten CompositeDataSet table merging, detect columns without exception flow in FlatXmlProducer, fix PrimaryKeyFilter result set leak, fix XlsDataSetWriter memory leak, skip timezone regex for plain timestamps, guard hot-path debug logging, fix SQLHelper result set leak, reuse query metadata in QueryTableIterator, fix XlsDataSet file stream leak, release consumed CSV rows early, lookup map for OrderedTableNameMap original names, primitive row index storage in RowFilterTable, set-based membership in Columns.mergeColumnsByName, extend ResultSetTableMetaData column-metadata cache to MySqlMetadataHandler and Db2MetadataHandler, fix XlsDataSetWriter StringIndexOutOfBoundsException for BigDecimal scale greater than 52, restore execution of 45 test methods silenced by missing @Test annotations, fix corrupted assertion in HandlersTest">
<!-- dependabot:dep=actions/checkout:new=7:pr=756 -->
<action dev="dependabot" type="update" due-to="Dependabot">Update github_actions dependency actions/checkout from 6 to 7 (#756).</action>
<!-- dependabot:dep=org.apache.maven.plugins:maven-failsafe-plugin:new=3.5.6:pr=748 -->
<action dev="dependabot" type="update" due-to="Dependabot">Update maven dependency org.apache.maven.plugins:maven-failsafe-plugin from 3.5.5 to 3.5.6 (#748).</action>
<!-- dependabot:dep=org.apache.maven.plugins:maven-surefire-plugin:new=3.5.6:pr=748 -->
<action dev="dependabot" type="update" due-to="Dependabot">Update maven dependency org.apache.maven.plugins:maven-surefire-plugin from 3.5.5 to 3.5.6 (#748).</action>
<!-- dependabot:dep=org.apache.maven.plugins:maven-surefire-report-plugin:new=3.5.6:pr=748 -->
<action dev="dependabot" type="update" due-to="Dependabot">Update maven dependency org.apache.maven.plugins:maven-surefire-report-plugin from 3.5.5 to 3.5.6 (#748).</action>
<!-- dependabot:dep=com.oracle.database.xml:xdb:new=23.26.2.0.0:pr=749 -->
<action dev="dependabot" type="update" due-to="Dependabot">Update maven dependency com.oracle.database.xml:xdb from 23.7.0.25.01 to 23.26.2.0.0 (#749).</action>
<!-- dependabot:dep=com.oracle.database.xml:xmlparserv2:new=23.26.2.0.0:pr=750 -->
<action dev="dependabot" type="update" due-to="Dependabot">Update maven dependency com.oracle.database.xml:xmlparserv2 from 23.7.0.25.01 to 23.26.2.0.0 (#750).</action>
<!-- dependabot:dep=org.sonatype.central:central-publishing-maven-plugin:new=0.11.0:pr=757 -->
<action dev="dependabot" type="update" due-to="Dependabot">Update maven dependency org.sonatype.central:central-publishing-maven-plugin from 0.10.0 to 0.11.0 (#757).</action>
<!-- dependabot:dep=com.github.siom79.japicmp:japicmp-maven-plugin:new=0.26.1:pr=758 -->
<action dev="dependabot" type="update" due-to="Dependabot">Update maven dependency com.github.siom79.japicmp:japicmp-maven-plugin from 0.26.0 to 0.26.1 (#758).</action>
<!-- dependabot:dep=ch.qos.logback:logback-classic:new=1.5.34:pr=759 -->
<action dev="dependabot" type="update" due-to="Dependabot">Update maven dependency ch.qos.logback:logback-classic from 1.5.32 to 1.5.34 (#759).</action>
<!-- dependabot:dep=org.junit.jupiter:junit-jupiter:new=6.1.1:pr=761 -->
<action dev="dependabot" type="update" due-to="Dependabot">Update maven dependency org.junit.jupiter:junit-jupiter from 6.1.0 to 6.1.1 (#761).</action>
<!-- dependabot:dep=org.junit.platform:junit-platform-suite-engine:new=6.1.1:pr=761 -->
<action dev="dependabot" type="update" due-to="Dependabot">Update maven dependency org.junit.platform:junit-platform-suite-engine from 6.1.0 to 6.1.1 (#761).</action>
<!-- dependabot:dep=ch.qos.logback:logback-classic:new=1.5.37:pr=762 -->
<action dev="dependabot" type="update" due-to="Dependabot">Update maven dependency ch.qos.logback:logback-classic from 1.5.34 to 1.5.37 (#762).</action>
<!-- dependabot:dep=org.jacoco:jacoco-maven-plugin:new=0.8.15:pr=763 -->
<action dev="dependabot" type="update" due-to="Dependabot">Update maven dependency org.jacoco:jacoco-maven-plugin from 0.8.14 to 0.8.15 (#763).</action>
<!-- dependabot:dep=com.ibm.db2:jcc:new=12.1.5.0:pr=764 -->
<action dev="dependabot" type="update" due-to="Dependabot">Update maven dependency com.ibm.db2:jcc from 12.1.0.0 to 12.1.5.0 (#764).</action>
<action dev="jeffjensen" type="update" issue="769" system="github" due-to="jeffjensen">
Speed up per-cell column index lookups with an exact-case fast path in AbstractTableMetaData.
</action>
<action dev="jeffjensen" type="update" issue="770" system="github" due-to="jeffjensen">
Stop capturing stack traces in RowOutOfBoundsException end-of-rows control flow; the exception no longer carries a stack trace.
</action>
<action dev="jeffjensen" type="update" issue="771" system="github" due-to="jeffjensen">
Buffer XML output in XmlWriter; callers must close or flush the writer to guarantee complete output.
</action>
<action dev="jeffjensen" type="update" issue="772" system="github" due-to="jeffjensen">
Buffer CSV file output in CsvDataSetWriter.
</action>
<action dev="jeffjensen" type="update" issue="773" system="github" due-to="jeffjensen">
Buffer DTD and YAML dataset output.
</action>
<action dev="jeffjensen" type="update" issue="774" system="github" due-to="jeffjensen">
Cache DecimalFormat instances per format string in XlsTable numeric cell reads.
</action>
<action dev="jeffjensen" type="fix" issue="766" system="github" due-to="jeffjensen">
Restore execution of DepthFirstSearch tests that silently stopped running under JUnit Jupiter.
</action>
<action dev="jeffjensen" type="fix" issue="766" system="github" due-to="jeffjensen">
Enforce the search depth limit in DepthFirstSearch; direct-dependency lookups no longer include transitive tables.
</action>
<action dev="jeffjensen" type="update" issue="491" system="github" due-to="jeffjensen">
Cache dependency edges during DatabaseSequenceFilter sorting, eliminating repeated JDBC metadata queries.
</action>
<action dev="jeffjensen" type="update" issue="491" system="github" due-to="jeffjensen">
Replace quadratic table ordering in DatabaseSequenceFilter with a topological sort; ambiguous orders may differ but remain valid.
</action>
<action dev="jeffjensen" type="update" issue="617" system="github" due-to="jeffjensen">
Fetch result set column metadata once per table instead of once per column (DefaultMetadataHandler only).
</action>
<action dev="jeffjensen" type="update" issue="775" system="github" due-to="jeffjensen">
Precompute sort keys in SortedTable instead of re-converting values on every comparison.
</action>
<action dev="jeffjensen" type="update" issue="776" system="github" due-to="jeffjensen">
Reduce per-cell overhead in the assertion comparison loop (hoisted row count, guarded debug logging).
</action>
<action dev="jeffjensen" type="update" issue="777" system="github" due-to="jeffjensen">
Reduce replacement scanning overhead in ReplacementTable.
</action>
<action dev="jeffjensen" type="update" issue="778" system="github" due-to="jeffjensen">
Flatten same-name table merging in CompositeDataSet from nested pairs to a single composite.
</action>
<action dev="jeffjensen" type="update" issue="779" system="github" due-to="jeffjensen">
Detect columns without exception-based control flow in FlatXmlProducer.
</action>
<action dev="jeffjensen" type="fix" issue="767" system="github" due-to="jeffjensen">
Close result sets per iteration in PrimaryKeyFilter scans instead of leaking them.
</action>
<action dev="jeffjensen" type="fix" issue="768" system="github" due-to="jeffjensen">
Release workbook cell style cache entries after XLS write, fixing a memory leak.
</action>
<action dev="jeffjensen" type="update" issue="780" system="github" due-to="jeffjensen">
Skip the timezone-suffix regex match in TimestampDataType.typeCast for strings that cannot possibly contain a timezone suffix.
</action>
<action dev="jeffjensen" type="update" issue="278" system="github" due-to="jeffjensen">
Guard hot-path debug logging in PreparedBatchStatement, SimplePreparedStatement, AutomaticPreparedBatchStatement, and InsertOperation.
</action>
<action dev="jeffjensen" type="fix" issue="767" system="github" due-to="jeffjensen">
Close the result set in SQLHelper.getPrimaryKeyColumn and raise a clear SQLException when the table has no primary key.
</action>
<action dev="jeffjensen" type="update" issue="781" system="github" due-to="jeffjensen">
Reuse the cached table in QueryTableIterator.getTableMetaData instead of separately querying the database, also fixing a result set leak in the previous implementation.
</action>
<action dev="jeffjensen" type="fix" issue="788" system="github" due-to="jeffjensen">
Close the internal file stream in the XlsDataSet(File) constructor instead of leaking it; buffer it while open.
</action>
<action dev="jeffjensen" type="update" issue="783" system="github" due-to="jeffjensen">
Release each CSV row read by CsvProducer as soon as it is handed to the dataset consumer, instead of retaining the full parsed file in memory alongside the CachedDataSet being built from it.
</action>
<action dev="jeffjensen" type="update" issue="784" system="github" due-to="jeffjensen">
Replace the linear scan in OrderedTableNameMap.getOriginalTableName with a lookup map populated at add() time.
</action>
<action dev="jeffjensen" type="update" issue="785" system="github" due-to="jeffjensen">
Store RowFilterTable's filtered row index mapping as a primitive int array instead of boxed Integer objects.
</action>
<action dev="jeffjensen" type="update" issue="786" system="github" due-to="jeffjensen">
Replace the O(n*m^2) nested scan and List.remove(Object) in Columns.mergeColumnsByName with set-based membership.
</action>
<action dev="jeffjensen" type="update" issue="792" system="github" due-to="jeffjensen">
Extend ResultSetTableMetaData's per-table column-metadata cache to MySqlMetadataHandler and Db2MetadataHandler via a new IMetadataHandler.matchesColumn()/supportsColumnCache() capability, instead of only DefaultMetadataHandler.
</action>
<action dev="jeffjensen" type="fix" issue="790" system="github" due-to="jeffjensen">
Build the zero-padding format string in XlsDataSetWriter from the actual BigDecimal scale instead of substring-ing a fixed 52-character constant, which threw StringIndexOutOfBoundsException for scale greater than 52. Cap the padding length to avoid unbounded growth for a pathological scale, and deprecate the now-unused ZEROS constant.
</action>
<action dev="jeffjensen" type="fix" issue="794" system="github" due-to="jeffjensen">
Restore execution of 45 test methods across 22 classes that silently never ran under JUnit Jupiter: JUnit3-era overrides of inherited/abstract test methods and @Disabled-only methods missing the required @Test annotation.
</action>
<action dev="jeffjensen" type="fix" issue="794" system="github" due-to="jeffjensen">
Fix corrupted expected-value string in HandlersTest.testEmptyQuotedAndUnquotedFieldsParser, exposed once the test began executing.
</action>
</release>
<release version="3.2.0" date="Jun 4, 2026" description="GH action updates, extract UTs from ITs, rename test methods, add DataSetBuilder, improve test infra, improve UT coverage, bump HSQLDB, improve IT coverage, fix table lookup with case-sensitive databases, fix metadata table name lookups, convert UTs to ITs, OracleSdoGeometryDataType test coverage, fix ScrollableResultSetTable, document profile unsupportedFeatures, correct profile unsupportedFeatures, configure DB2, fix SQLHelper NPE, fix TruncateTableOperation for DB2">
<!-- dependabot:dep=actions/deploy-pages:new=5:pr=27 -->
<action dev="dependabot" type="update" due-to="Dependabot">Update github_actions dependency actions/deploy-pages from 4 to 5 (#27).</action>
<!-- dependabot:dep=actions/setup-java:new=5:pr=27 -->
<action dev="dependabot" type="update" due-to="Dependabot">Update github_actions dependency actions/setup-java from 4 to 5 (#27).</action>
<!-- dependabot:dep=actions/upload-pages-artifact:new=5:pr=27 -->
<action dev="dependabot" type="update" due-to="Dependabot">Update github_actions dependency actions/upload-pages-artifact from 3 to 5 (#27).</action>
<!-- dependabot:dep=dependabot/fetch-metadata:new=3:pr=27 -->
<action dev="dependabot" type="update" due-to="Dependabot">Update github_actions dependency dependabot/fetch-metadata from 2 to 3 (#27).</action>
<action dev="jeffjensen" type="add" issue="727" system="github" due-to="jeffjensen">Extract mock-based tests, runnable without a database, from IT classes into standalone unit test classes.</action>
<action dev="jeffjensen" type="update" issue="728" system="github" due-to="jeffjensen">Rename test methods across all test classes to follow the test_condition_outcome naming convention.</action>
<action dev="jeffjensen" type="add" fixed-issues="551,733" system="github" due-to="jeffjensen">Add DataSetBuilder for easing in-memory data set creation.</action>
<action dev="jeffjensen" type="add" issue="729" system="github" due-to="jeffjensen">Improve test infrastructure by adding InMemoryDatabaseConnection and MockBatchStatement, and updating MockStatementFactory.</action>
<action dev="jeffjensen" type="add" issue="730" system="github" due-to="jeffjensen">Add many unit tests to improve unit test coverage.</action>
<action dev="jeffjensen" type="update" issue="731" system="github" due-to="jeffjensen">Bump HSQLDB from 1.8.0.10 to 2.7.4 and update DDL and driver references for JDBC 4.0 compliance.</action>
<action dev="jeffjensen" type="add" issue="731" system="github" due-to="jeffjensen">Add many integration tests to improve integration test coverage.</action>
<action dev="jeffjensen" type="fix" fixed-issues="705,734" system="github" due-to="jeffjensen">Fix table lookup failure with case-sensitive databases when creating DatabaseTableMetaData.</action>
<action dev="jeffjensen" type="fix" issue="737" system="github" due-to="jeffjensen">Escape SQL LIKE wildcard characters in table name metadata lookups and normalize table names to stored case in FK dependency searches.</action>
<action dev="jeffjensen" type="update" issue="736" system="github" due-to="jeffjensen">Use database profile connection in FK-graph and pattern tests instead of hardcoded HSQLDB connections.</action>
<action dev="jeffjensen" type="update" issue="736" system="github" due-to="jeffjensen">Skip case-sensitive table name tests on databases that do not support mixed-case quoted identifiers.</action>
<action dev="jeffjensen" type="add" issue="738" system="github" due-to="jeffjensen">Add Mockito unit test and live Oracle integration test for OracleSdoGeometryDataType.getSqlValue, verifying null geometry returns the "NULL" sentinel and non-null geometry returns a parseable string.</action>
<action dev="jeffjensen" type="fix" issue="739" system="github" due-to="jeffjensen">Fix ScrollableResultSetTable IDatabaseConnection-based constructors that always obtained a TYPE_FORWARD_ONLY statement, making scrollable result set support permanently broken. Rename ScrollableResultSetTableTest to ScrollableResultSetTableIT, add H2-based tests that prove the break and verify the fix, and remove SCROLLABLE_RESULTSET from the Oracle and H2 unsupported-feature lists.</action>
<action dev="jeffjensen" type="update" issue="743" system="github" due-to="jeffjensen">Document all valid dbunit.profile.unsupportedFeatures values with descriptions and per-database support matrix; fix stale H2 example that incorrectly listed SCROLLABLE_RESULTSET as unsupported.</action>
<action dev="jeffjensen" type="fix" issue="744" system="github" due-to="jeffjensen">Correct unsupportedFeatures in derby-dbunit.properties (remove TRANSACTION, SCROLLABLE_RESULTSET, TRUNCATE_TABLE), h2-dbunit.properties (remove TRUNCATE_TABLE), and hsqldb-dbunit.properties (remove TRUNCATE_TABLE); update site doc table and H2 example accordingly.</action>
<action dev="jeffjensen" type="add" issue="635" system="github" due-to="jeffjensen">Configure DB2 in build infrastructure: migrate to icr.io/db2_community/db2:11.5.9.0 (ibmcom/db2 is deprecated); add db2-11-5 to database-profiles.txt and GitHub Actions CI matrix (30-minute timeout); configure Docker container with DB2INSTANCE env var, privileged mode (required for kernel IPC resources), AUTOCONFIG=false/UPDATEAVAIL=NO (shorter startup), tmpfs on /database (eliminates transaction log fsync overhead), and db2-tune.sh to increase LOGBUFSZ and disable SOFTMAX; set db2-dbunit.properties schema=DBUNIT (DB2 stores identifiers as uppercase), unsupportedFeatures, and multiLineSupport; add Db2Environment setting Db2DataTypeFactory, Db2MetadataHandler, and enabling batch statements; add NOT NULL to PK columns in shared test DDL files (DB2 requires explicit NOT NULL on PK columns); update site doc.</action>
<action dev="jeffjensen" type="fix" issue="745" system="github" due-to="jeffjensen">Fix NullPointerException in SQLHelper.schemaExists() and catalogExists() when the JDBC driver returns null TABLE_SCHEM or TABLE_CAT values, as DB2 does.</action>
<action dev="jeffjensen" type="fix" issue="746" system="github" due-to="jeffjensen">Fix TruncateTableOperation for DB2: add protected getDeleteAllCommandSuffix hook to DeleteAllOperation and override it in TruncateTableOperation to append IMMEDIATE, which DB2 requires in every TRUNCATE TABLE statement.</action>
<action dev="jeffjensen" type="fix" issue="711" system="github" due-to="jeffjensen">Fix TimestampDataType.setSqlValue() to pass a Calendar matching the dataset timezone offset when setting a timestamp with timezone info, preventing the JDBC driver from applying the JVM local timezone and storing the wrong wall-clock time.</action>
</release>
<release version="3.1.0" date="May 11, 2026" description="Lower DefaultPrepAndExpectedTestCase log levels, build DB config, GitHub CI, reproducible builds, change to Central Portal publishing, IsActualGreaterThanExpectedWithIgnoreMillisValueComparer, IsActualGreaterThanOrEqualToExpectedWithIgnoreMillisValueComparer, GitHub config, convert docs to Asciidoc, version bumps, DefaultPrepAndExpectedTestCase.runTestSteps(), auto-publish SNAPSHOTS">
<action dev="jeffjensen" type="add" issue="717" system="github" due-to="jeffjensen">Configure GitHub CI.</action>
<action dev="jeffjensen" type="update" issue="716" system="github" due-to="jeffjensen">Update build to use docker-maven-plugin for starting databases.</action>
<action dev="jeffjensen" type="update" issue="718" system="github" due-to="jeffjensen">DefaultPrepAndExpectedTestCase: lower log levels so no WARN and fewer INFO.</action>
<action dev="jeffjensen" type="update" issue="720" system="github" due-to="jeffjensen">Setup reproducible builds.</action>
<action dev="jeffjensen" type="update" issue="721" system="github" due-to="jeffjensen">Change Central artifact publishing from OSSRH to new Portal.</action>
<action dev="jeffjensen" type="add" due-to="jeffjensen">Add IsActualGreaterThanExpectedWithIgnoreMillisValueComparer.</action>
<action dev="jeffjensen" type="add" due-to="jeffjensen">Add IsActualGreaterThanOrEqualToExpectedWithIgnoreMillisValueComparer.</action>
<action dev="jeffjensen" type="add" issue="723" system="github" due-to="jeffjensen">Convert APT and XDoc doc files to Asciidoc.</action>
<action dev="jeffjensen" type="add" issue="724" system="github" due-to="jeffjensen">Generate and publish Maven site to GitHub pages.</action>
<action dev="jeffjensen" type="update" due-to="jeffjensen">Bump multiple plugin and lib versions.</action>
<action dev="jeffjensen" type="add" issue="725" system="github" due-to="jeffjensen">DefaultPrepAndExpectedTestCase: extract runTestSteps() from runTest() enabling customization in child classes.</action>
<action dev="jeffjensen" type="add" due-to="jeffjensen">Auto-publish SNAPSHOTs to Maven Central on master commits.</action>
</release>
<release version="3.0.0" date="Jan 25, 2025" description="JUnit 5 update, ValueComparers constants, Add TableDecoratorDataSet and GeneratedColumnFilter, Postgresql dep scope, IOUtils NoClassDefFoundError, PostgreSQLOidDataType.setSqlValue(): use unwrap(), Oracle NClob, XML DataTypes: use unwrap()">
<action dev="jeffjensen" type="update" issue="659" system="github" due-to="emann">Upgrade dbUnit from JUnit 4 to JUnit 5</action>
<action dev="jeffjensen" type="add" issue="699" system="github" due-to="jeffjensen">Add 'actual is null' and 'actual is not null' constants to ValueComparers class</action>
<action dev="jeffjensen" type="add" issue="675" system="github" due-to="rdicroce">Add TableDecoratorDataSet and GeneratedColumnFilterSupport enabling column filtering from datasets, such as computed columns</action>
<action dev="jeffjensen" type="fix" issue="701" system="github" due-to="jeffjensen">Mark postgresql dependency as provided scope</action>
<action dev="jeffjensen" type="fix" issue="703" system="github" due-to="jeffjensen">Fix NoClassDefFoundError for IOUtils</action>
<action dev="andrewhj" type="update" issue="690" system="github" due-to="andrewhj">Update code for Modernizer plugin violations</action>
<action dev="jeffjensen" type="fix" issue="714" system="github" due-to="wbiller">In PostgreSQLOidDataType.setSqlValue(), use connection.unwrap() to get PGConnection.</action>
<action dev="jeffjensen" type="fix" issue="702" system="github" due-to="wbiller">In OracleNClobDataType.setSqlValue() and OracleXMLTypeDataType.setSqlValue(), use connection.unwrap() to get statement or resultset.</action>
<action dev="jeffjensen" type="add" issue="715" system="github" due-to="jeffjensen">Configure Maven Wrapper for dbUnit builds.</action>
</release>
<release version="2.8.0" date="Jun 2, 2024" description="YAML dataset">
<action dev="beskow" type="add" issue="688" system="github" due-to="beskow">Add support for YAML dataset format</action>
</release>
<release version="2.7.3" date="Feb 12, 2022" description="new ValueComparers, unwrap PGConnection, Timestamp DST, UUID NPE, OracleClobDataType CCE, Operation multiple dataset sources, PostGIS 2021.1.0">
<action dev="jeffjensen" type="add" issue="44" system="github" due-to="beskow">Enable composing an Operation dataset from multiple source files</action>
<action dev="jeffjensen" type="update" issue="684" system="github" due-to="Bambaro">OracleClobDataType: Use non-deprecated CLOB; also prevents ClassCastException</action>
<action dev="jeffjensen" type="fix" issue="695" system="github" due-to="xobotun">Nullable UUID column in PostgreSQL caused NPE</action>
<action dev="jeffjensen" type="fix" issue="694" system="github" due-to="JamMule">Timestamp conversion for instants during daylight saving time is off</action>
<action dev="jeffjensen" type="fix" issue="692" system="github" due-to="fransonsr">Unwrap PGConnection instead of casting to it</action>
<action dev="jeffjensen" type="add" issue="699" system="github" due-to="jeffjensen">Add 'actual is null' and 'actual is not null' ValueComparers</action>
<action dev="jeffjensen" type="update" issue="700" system="github" due-to="mprins">Upgrade PostGIS JDBC driver to 2021.1.0</action>
</release>
<release version="2.7.2" date="Jul 27, 2021" description="DefaultPrepAndExpectedTestCase getConnection(), more case sensitive tables">
<action dev="jeffjensen" type="fix" issue="697" system="github" due-to="jeffjensen">DefaultPrepAndExpectedTestCase must use correct getConnection() to initialize DatabaseConfig </action>
<action dev="jeffjensen" type="fix" issue="698" system="github" due-to="jeffjensen">DefaultPrepAndExpectedTestCase must use DatabaseConfig.FEATURE_CASE_SENSITIVE_TABLE_NAMES: in cleanupData()</action>
</release>
<release version="2.7.1" date="Jul 22, 2021" description="Apache POI 4.1.0, Maven relativePath warning, UniqueIdentifierType: change caught exception for Java 12, Set some dependencies optional, Remove commons-io, commons-collections deps, case sensitive tables">
<action dev="jeffjensen" type="update" issue="671" system="github" due-to="dicer">Update Apache POI to version 4.1.0</action>
<action dev="jeffjensen" type="update" issue="679" system="github" due-to="vicziani">Eliminate the Maven's relativePath warning</action>
<action dev="jeffjensen" type="update" issue="680" system="github" due-to="vicziani">UniqueIdentifierType: change caught exception for Java 12's changed UUID validation</action>
<action dev="jeffjensen" type="update" issue="681" system="github" due-to="vicziani">Use optional in poi-ooxml and postgresql Maven dependencies</action>
<action dev="jeffjensen" type="update" issue="682" system="github" due-to="vicziani">Use optional in junit and hamcrest Maven dependencies</action>
<action dev="jeffjensen" type="update" issue="683" system="github" due-to="vicziani">Remove commons-io dependency</action>
<action dev="jeffjensen" type="update" issue="684" system="github" due-to="vicziani">Remove commons-collections dependency</action>
<action dev="jeffjensen" type="fix" issue="696" system="github" due-to="jeffjensen">DefaultPrepAndExpectedTestCase must use DatabaseConfig.FEATURE_CASE_SENSITIVE_TABLE_NAMES: in configureTest()</action>
</release>
<release version="2.7.0" date="Feb 23, 2020" description="DefaultPrepAndExpectedTestCase.makeAdditionalColumnInfo NPE, PostgreSQL driver update, DefaultPrepAndExpectedTestCase.verifyData() sorting, Relative date/time syntax, Travis CI, Fix MSSQL identity column filter, Fix CachedDataSet, IsActualContainingExpectedStringValueComparer, Fix FilteredDataSet case sensitivity, Fix DatabaseDataSet schema normalisation, Fix IsActualWithinToleranceOfExpectedTimestampValueComparer value casting, MSSQL datetimeoffset, Fix FlatXml set null value for different column name cases">
<action dev="jeffjensen" type="fix" issue="652" system="github" due-to="jeffjensen">NPE in DefaultPrepAndExpectedTestCase.makeAdditionalColumnInfo when excludeColumns is null</action>
<action dev="jeffjensen" type="update" issue="654" system="github" due-to="aklemp">Update PostgreSQL driver version</action>
<action dev="jeffjensen" type="fix" issue="658" system="github" due-to="jeffjensen">DefaultPrepAndExpectedTestCase.verifyData() sorts table columns by Strings</action>
<action dev="jeffjensen" type="add" issue="661" system="github" due-to="kforkiss">Add new syntax to set relative date, time, and timestamp in dataset</action>
<action dev="Quantas" type="add" issue="664" system="github" due-to="Quantas">Setup public CI</action>
<action dev="jeffjensen" type="fix" issue="503" system="github" due-to="lufecir">IllegalArgumentException when setting PROPERTY_IDENTITY_COLUMN_FILTER</action>
<action dev="deragon" type="fix" issue="660" system="github" due-to="deragon">CachedDataSet does not work</action>
<action dev="jeffjensen" type="add" issue="669" system="github" due-to="jeffjensen">Add IsActualContainingExpectedStringValueComparer comparing if actual contains expected</action>
<action dev="jeffjensen" type="fix" issue="665" system="github" due-to="lcann">FilteredDataSet does not inherit case sensitivity of wrapped set</action>
<action dev="jeffjensen" type="fix" issue="666" system="github" due-to="lcann">DatabaseDataSet SchemaSet ignores case sensitivity setting in normalizing schema names</action>
<action dev="jeffjensen" type="fix" issue="667" system="github" due-to="lcann">IsActualWithinToleranceOfExpectedTimestampValueComparer assumes values are represented as Timestamps</action>
<action dev="jeffjensen" type="add" issue="668" system="github" due-to="rdicroce">Add support for MSSQL's datetimeoffset data type</action>
<action dev="jeffjensen" type="add" issue="687" system="github" due-to="jeffjensen">DefaultPrepAndExpectedTestCase.runTest(): catch Throwable instead of Exception</action>
<action dev="Quantas" type="add" issue="689" system="github" due-to="Quantas">Update Oracle Dependency to ojdbc8 from Maven Central</action>
<action dev="jeffjensen" type="fix" issue="673" system="github" due-to="lorentz-bind">Fix null values being inserted when a column is referenced with different casing</action>
</release>
<release version="2.6.0" date="Oct 13, 2018" description="ValueComparers, PostgreSQL OID, POI 3.17, Java 8 tests, database integration tests, changes links, devguide.apt created, dbunit.properties, expected and definition tables verifier, JavaDoc gen, JDK 8">
<action dev="jeffjensen" type="add" issue="627" system="github" due-to="jeffjensen">DefaultPrepAndExpectedTestCase, VerifyTableDefinition: support ValueComparer.</action>
<action dev="jeffjensen" type="add" issue="627" system="github" due-to="jeffjensen">ValueComparer: DbUnitAssert: add assert method that strategizes the compare algorithm on a per column basis.</action>
<action dev="Quantas" type="add" issue="649" system="github" due-to="Quantas">Add Dockerfiles for running ITs: MySQL, Oracle 11, Postgres and SQL Server</action>
<action dev="jeffjensen" type="fix" issue="609" system="github" due-to="jeffjensen">Fix JavaDoc gen</action>
<action dev="jeffjensen" type="update" issue="626" system="github" due-to="jeffjensen">DefaultPrepAndExpectedTestCase: VerifyTableDefinitions and expected tables can silently mismatch, add ExpectedDataSetAndVerifyTableDefinitionVerifier</action>
<action dev="jeffjensen" type="add" issue="648" system="github" due-to="jeffjensen">Change build to use Java 8 compiler and target 1.8: update compileSource to 1.8.</action>
<action dev="jeffjensen" type="add" issue="643" system="github" due-to="deragon">DatabaseEnvironment loads dbunit.properties. See "Integration Tests" page for docs.</action>
<action dev="jeffjensen" type="add" issue="641" system="github" due-to="deragon">Convert devguide.xml to devguide.apt.</action>
<action dev="Quantas" type="fix" issue="630" system="github" due-to="deragon">Fixed documentation regarding the blob tags.</action>
<action dev="jeffjensen" type="fix" issue="557" system="github" due-to="jeffjensen">Fix changes report tracker links (Bugs, Features) to support both.</action>
<action dev="Quantas" type="fix" fixed-issues="407,409,410,411" system="github" due-to="Quantas">Fix all (except one Oracle test) database integration tests to work again.</action>
<action dev="jeffjensen" type="update" issue="601" system="github" due-to="jkearns-arthrex">Update tests to support build running Java 8.</action>
<action dev="jeffjensen" type="update" issue="619" system="github" due-to="deragon">CachedDataSet has redundant code.</action>
<action dev="jeffjensen" type="update" issue="618" system="github" due-to="deragon">FlatDtdDataSet has redundant code.</action>
<action dev="jeffjensen" type="update" issue="623" system="github" due-to="msymons">Use Apache POI 3.17.</action>
<action dev="jeffjensen" type="add" issue="550" system="github" due-to="mfrechePgest, ibic">Add PostgreSQL OID data type.</action>
</release>
<release version="2.5.4" date="Aug 20, 2017" description="Doc update, MSSQL IdentityInsertOperation commits, streamed export, blobs in datasets">
<action dev="jeffjensen" type="update" due-to="jeffjensen">DefaultPrepAndExpectedTestCase: Don't verify table data when test execution has errors.</action>
<action dev="jeffjensen" type="fix" system="github" issue="616" due-to="sidikcz">Cannot insert null values via jTDS (regression from 374).</action>
<action dev="jeffjensen" type="add" system="github" issue="612" due-to="deragon">Blobs are now easier to define in flat XML dataset and CSV files using [text <encoding>], [base64] and [file] cues. See Data Types doc page.</action>
<action dev="jeffjensen" type="update" system="github" issue="615" due-to="mureinik">Fix Ohloh to the update Open Hub terminology.</action>
<action dev="jeffjensen" type="fix" system="github" issue="610" due-to="zdenek-zikan">Streamed export does not work when it launched from Ant.</action>
<action dev="jeffjensen" type="fix" system="github" issue="493" due-to="beskow">MSSQL IdentityInsertOperation.execute erroneously always commits.</action>
<action dev="jeffjensen" type="update" system="github" issue="608" due-to="opporancisis">Outdated link on Configurable Features and Properties page.</action>
</release>
<release version="2.5.3" date="Aug 21, 2016" description="DefaultPrepAndExpectedTestCase config, TimestampDataType.typeCast(), escape pattern for table name, DefaultPrepAndExpectedTestCase.verifyData() connection, XlsTable timezone, OracleXMLType, 'true' 'false' for numeric fields, XlsDataSetWriter cellstyle caching, ForeignKeyRelationshipEdge.compareTo, new CI, POM cleanup, ReplacementDataSet and DbUnitAssert case sensitive table names, XmlWriter">
<action dev="jeffjensen" type="fix" system="github" issue="602" due-to="apechinsky">Any characters with code greater than 7f are written to XML attribute value as entity.</action>
<action dev="jeffjensen" type="fix" system="github" issue="597" due-to="RafaelANTVS">DbUnitAssert table name case sensitive problems.</action>
<action dev="jeffjensen" type="fix" system="github" issue="599" due-to="RafaelANTVS">ReplacementDataSet "ignores" its decorated DataSet's caseSensitiveTableNames setting.</action>
<action dev="jeffjensen" type="update" system="github" issue="598" due-to="jeffjensen">Broken links to issues referenced in changes-report.html.</action>
<action dev="jeffjensen" type="update" due-to="jeffjensen">POM cleanup: remove "official" profile, consolidate config.</action>
<action dev="jeffjensen" type="update" due-to="jeffjensen">Update site with new CI server info: http://dbunit.intertech.com/jenkins</action>
<action dev="jeffjensen" type="fix" system="github" issue="510" due-to="jeffjensen">Can not obtain relations from several columns.</action>
<action dev="jeffjensen" type="fix" system="github" issue="586" due-to="markarnold">Running out of cell styles in XlsDataSetWriter.</action>
<action dev="jeffjensen" type="add" system="github" issue="498" due-to="weifengli">Allow 'false' -> 0 and 'true' -> 1 for numeric fields.</action>
<action dev="jeffjensen" type="fix" system="github" issue="582" due-to="sidikcz">Unable to insert row with Oracle XMLType.</action>
<action dev="jeffjensen" type="fix" system="github" issue="579" due-to="markarnold">Add test showing XlsTable timezone issue first reported in issue 280.</action>
<action dev="jeffjensen" type="fix" system="github" issue="457" due-to="mnt40">Don't add timezone offset for XlsTable.</action>
<action dev="jeffjensen" type="fix" due-to="jeffjensen">DefaultPrepAndExpectedTestCase.verifyData() uses databaseTester.getConnection() and should use DatabaseTestCase.getConnection().</action>
<action dev="jeffjensen" type="fix" due-to="jeffjensen">AbstractDatabaseConnection.createTable(String) ignores escape pattern for table name.</action>
<action dev="jeffjensen" type="fix" system="github" issue="589" due-to="Kalnet-FS5">TimestampDataType.typeCast() fails on non-local timezones.</action>
<action dev="jeffjensen" type="fix" system="github" issue="592" due-to="jeffjensen">DefaultPrepAndExpectedTestCase doesn't handle all DatabaseConfig access approaches, missing dbUnit lifecycle steps.</action>
</release>
<release version="2.5.2" date="Apr 8, 2016" description="Lost dbunit.org, toString() tables, respect DEFAULTs, multi-schema, PrepAndExpectedTestCaseSteps">
<action dev="jeffjensen" type="fix" system="github" issue="573" due-to="warwing">Multi schema support in FlatXmlDataSets.</action>
<action dev="jeffjensen" type="add" system="github" issue="562" due-to="mjiderhamn">Do not explicitly insert null into NOT NULL columns with DEFAULT.</action>
<action dev="jeffjensen" type="add" system="github" issue="571" due-to="jeffjensen">Add toString() to XlsTable and StreamingIterator.</action>
<action dev="jeffjensen" type="update" system="github" issue="572" due-to="jeffjensen">dbunit.org domain owner did not renew it; fix links.</action>
<action dev="jeffjensen" type="update" due-to="jeffjensen">Make AbstractDataFileLoader.loadDataSet public and pull up to DataFileLoader interface.</action>
<action dev="jeffjensen" type="add" system="github" issue="577" due-to="zemertz">Postgres CITEXT data type support.</action>
<action dev="jeffjensen" type="add" due-to="jeffjensen">Add PrepAndExpectedTestCaseSteps for lambdas and eliminating try/catch/finally template for PrepAndExpectedTestCase.</action>
</release>
<release version="2.5.1" date="April 11, 2015" description="allowEmptyFields property, column aliases POI 3.11, ">
<action dev="jeffjensen" type="update" system="github" issue="497" due-to="kazuhito-m">Upgrade Apache POI library from "3.2-FINAL" to "3.11". Pull request 6, Enhancement 161.</action>
<action dev="jeffjensen" type="fix" system="github" issue="552" due-to="tm14258">dBUnit does not pick up column aliases.</action>
<action dev="jeffjensen" type="add" system="github" issue="561" due-to="adamsiemion">Add allowEmptyFields feature flag/property to prevent fail-fast and allow empty string fields.</action>
<action dev="jeffjensen" type="fix" system="github" issue="567" due-to="drissamri">BigIntegerDataType.setSqlValue() NPE when value is null.</action>
</release>
<release version="2.5.0" date="Apr 24, 2014" description="CSV dataset, PostGres, Sonatype OSSRH, logging, Java 1.5, MySQL, UUIDs, autoincrement, DTD implied columns">
<action dev="jeffjensen" type="add" issue="3578765" due-to="jeffjensen">Use Sonatype OSSRH for snapshots and release sync to Central.</action>
<action dev="jeffjensen" type="add" issue="3499513" due-to="MPriess">Add Postgres Geometry Type.</action>
<action dev="jeffjensen" type="fix" issue="3545861" due-to="artbristol">CsvURLProducer swallows exception stack.</action>
<action dev="jeffjensen" type="fix" issue="3554287" due-to="statalex">Trim CSV file column names.</action>
<action dev="jeffjensen" type="update" due-to="jeffjensen">DefaultPrepAndExpectedTestCase: Log exceptions for setupData, verifyData, cleanupData to help diagnosis of data problems.</action>
<action dev="jeffjensen" type="update" due-to="jeffjensen">Fail fast and clearly when column value has no value; throws IllegalArgumentException.</action>
<action dev="jeffjensen" type="update" due-to="jeffjensen">Update SLF4J and LogBack to latest versions.</action>
<action dev="jeffjensen" type="update" due-to="jeffjensen">Update compileSource to 1.5.</action>
<action dev="jeffjensen" type="update" due-to="jeffjensen">Update JUnit version to 4.11.</action>
<action dev="jeffjensen" type="fix" system="github" issue="553" due-to="rburgstaller">H2DataTypeFactory does not properly support UUID data type.</action>
<action dev="jeffjensen" type="fix" system="github" issue="541" due-to="djeanprost">DBUnit 2.4.9 needs java 6 to run.</action>
<action dev="jeffjensen" type="fix" system="github" issue="498" due-to="weifengli">MySqlDataTypeFactory saves TINYINT(1) as String.</action>
<action dev="jeffjensen" type="add" system="github" issue="546" due-to="timurstrekalov">Special dataset syntax for UUIDs mapped to binary fields.</action>
<action dev="jeffjensen" type="update" system="github" issue="544" due-to="gavenkoa">Broken link on http://www.dbunit.org/issue-tracking.html.</action>
<action dev="jeffjensen" type="fix" system="github" issue="535" due-to="mrhcon01">SQLHelper Oracle Issue (autoincrement metadata problem).</action>
<action dev="jeffjensen" type="add" system="github" issue="559" due-to="mjiderhamn">Columns with defaults should be #IMPLIED in generated DTD.</action>
</release>
<release version="2.4.9" date="Sep 30, 2012" description="Additional toString()s, schema name usage, logging, timestamp, unique ID, table name in Operation exceptions, build with JDK 6.">
<action dev="jeffjensen" type="add" issue="3573007" due-to="jeffjensen">Change build to use current compiler on path vs 1.4. This is first dbUnit release done with JDK 6. If you encounter problems, please open a bug tracker item.</action>
<action dev="jeffjensen" type="add" due-to="jeffjensen">Add toString() methods to AbstractResultSetTable, ForwardOnlyResultSetTable, ScrollableResultSetTable, ColumnFilterTable.</action>
<action dev="jeffjensen" type="update" due-to="jeffjensen">For DefaultPrepAndExpectedTestCase, catch, log, and rethrow all log messages to help with troubleshooting. Tweak log messages. Improve doc example.</action>
<action dev="jeffjensen" type="fix" due-to="jeffjensen">Add schema name, if specified, to table name in query in AbstractDatabaseConnection.createTable().</action>
<action dev="rlogiacco" type="fix" issue="3071408" due-to="chrisphe">New Handling of Timestamp in 2.4.8 has error with subseconds</action>
<action dev="jeffjensen" type="fix" issue="3132130" due-to="jeffjensen">AbstractDatabaseConnection createQueryTable throws UOEx.</action>
<action dev="jeffjensen" type="add" issue="3170998" due-to="mcpierce">Provides support for the uniqueidentifier type in Microsoft SQLServer.</action>
<action dev="jeffjensen" type="update" due-to="jeffjensen">To help troubleshooting, add table name to Operation exceptions: refresh, delete, insert, update.</action>
</release>
<release version="2.4.8" date="Sep 2, 2010" description="Bug fixes, timezone support, Oracle support improvements, new DataFileLoader, new PrepAndExpectedTestCase">
<action dev="gommma" type="add" issue="3027485" due-to="Yishai">MSSQL JDBC Driver 3.0 doesn't work well</action>
<action dev="gommma" type="fix" issue="3022281" due-to="wujeksrujek">NPE when setting properties</action>
<action dev="gommma" type="fix" issue="2993712" due-to="glesatsf">Wrong value for property "datatypeFactory"</action>
<action dev="gommma" type="add" issue="2986323" due-to="LuigiTalamona">Added driver for Mckoi db.</action>
<action dev="gommma" type="fix" issue="2887115" due-to="unwissender2009">SQL: "Create Domain" ... Data Types are not supported.</action>
<action dev="johnbhurst" type="add" issue="2875253" due-to="caseylucas">Additional refinements for Oracle SDO_GEOMETRY datatype</action>
<action dev="johnbhurst" type="add" issue="2921131" due-to="vlamp">Add timezone support for timestamp data type</action>
<action dev="johnbhurst" type="add" issue="2919427" due-to="dbamberghi (Daniele Bamberghi)">OracleDataTypeFactory recognises "SYS.XMLTYPE"</action>
<action dev="jeffjensen" type="add" issue="2938029" due-to="jeffjensen">Add "file loader" utility (DataFileLoader) for various data file types</action>
<action dev="jeffjensen" type="add" due-to="jeffjensen">Add new TestCase that supports prepare and expected datasets: "DefaultPrepAndExpectedTestCase"</action>
</release>
<release version="2.4.7" date="Nov 09, 2009" description="Bugfixes and some non breaking refactoring">
<action dev="gommma" type="fix" issue="2685615" due-to="lumpynose">dtd for XmlDataSet</action>
<action dev="gommma" type="fix" issue="2866150" due-to="rlogiacco">Column sensing not available for InputStream</action>
<action dev="gommma" type="fix" issue="2741077" due-to="DnAp">DatabaseSequenceFilter fails on case sensitive tables</action>
<action dev="gommma" type="fix" issue="2838922" due-to="matthieus, simon_wu">DB2 problem with schema names</action>
<action dev="gommma" type="fix" issue="2875262" due-to="caseylucas">Handle non-typical characters in xml encoding</action>
<action dev="johnbhurst" type="fix" issue="2875235" due-to="johnbhurst">Fix integration tests</action>
<action dev="gommma" type="fix" issue="2880113" due-to="jherico">FK table sorting does not work with cross-schema FKs</action>
<action dev="johnbhurst" type="update" issue="2876909" due-to="johnbhurst">Replaced reflection-based Oracle data types with static calls</action>
<action dev="johnbhurst" type="add" issue="2875253" due-to="caseylucas">Add support for Oracle SDO_GEOMETRY datatype</action>
<action dev="gommma" type="add" issue="2884634" due-to="yanm-sdfc">Improvements to the ant operation task</action>
<action dev="gommma" type="add" issue="2889757" due-to="carcher">MsSqlDataTypeFactory does not support MS SQL 2005 NTEXT</action>
</release>
<release version="2.4.6" date="Sep 20, 2009" description="Bugfixes and some database specific additions">
<action dev="rlogiacco" type="add" issue="284432" due-to="jamesr">Add support for interval type on postgres</action>
<action dev="felipeal" type="update" due-to="felipeal">Changed some verbose logging statements from INFO to DEBUG level</action>
<action dev="gommma" type="fix" issue="2797698" due-to="mkienenb">DefaultDataSet is incompatible w/ AbstractDataSet's IDataSet</action>
<action dev="gommma" type="fix" issue="2818981" due-to="verreckenk">XlsTable - empty excel columns cause problem</action>
<action dev="gommma" type="add" issue="2824505" due-to="agnul">Support for Postgres' inet types</action>
<action dev="gommma" type="fix" issue="2823165" due-to="porkchop009">primaryFilterKey is not always respected</action>
<action dev="gommma" type="fix" issue="2831696" due-to="kalpana">Nullable tinyint on mysql cannot be inserted</action>
<action dev="gommma" type="fix" issue="2806016" due-to="gommma">Unify dbunit features and properties</action>
<action dev="gommma" type="add" issue="2833897" due-to="user2037">Support for Postgresql Enum</action>
<action dev="gommma" type="fix" issue="2838922" due-to="matthieus">DB2 problem with schema names</action>
<action dev="gommma" type="add" due-to="gommma">Support for Oracle ROWID</action>
<action dev="gommma" type="update" issue="2856524" due-to="johnbhurst">AbstractTableMetaData hardcoded dependency on IDataTypeFactory</action>
<action dev="gommma" type="fix" issue="2858410" due-to="acecacec">Numbers with more than 19 digits cannot be saved in a BIGINT column</action>
<action dev="gommma" type="fix" issue="2854788" due-to="olibye">Sybace - SQLHelper.getDatabaseInfo exception getDatabaseMajorVersion()</action>
<action dev="gommma" type="add" issue="2828869" due-to="amit3011">DBUnit support for Netezza database</action>
</release>
<release version="2.4.5" date="May 22, 2009" description="Bugfixes and some few additions">
<action dev="gommma" type="add" issue="2633859" due-to="tjstavenger-pnnl">Add Excel support to Export</action>
<action dev="gommma" type="fix" issue="2658082" due-to="Bernard Schubach">MySQL - NoSuchTableException</action>
<action dev="gommma" type="add" issue="2658136" due-to="ejain">Have DbUnitAssert use JUnit only if present</action>
<action dev="gommma" type="add" issue="2645688" due-to="reidmp">Oracle BINARY_DOUBLE+BINARY_FLOAT support</action>
<action dev="gommma" type="add" issue="2684042" due-to="lumpynose">specify the schema via the api</action>
<action dev="gommma" type="fix" issue="2783773" due-to="cyberroadie">XslTableTest.testDifferentDatatypes() fails (in trunk)</action>
<action dev="gommma" type="fix" issue="2709501" due-to="al0">Breaking change and likely bug in XlsTable.java</action>
<action dev="gommma" type="add" issue="2783531" due-to="cyberroadie, firsttiger">Support for UUID data type Postgresql</action>
</release>
<release version="2.4.4" date="Feb 24, 2009" description="Bugfixes, some small additions">
<action dev="gommma" type="update" issue="2524180" due-to="gommma"> Better extensibility for XmlDataSetWriter</action>
<action dev="gommma" type="fix" issue="2542079" due-to="nemuzuka"> XlsDataSet.write</action>
<action dev="gommma" type="fix" issue="2545095" due-to="jhattat"> Mysql FEATURE_QUALIFIED_TABLE_NAMES column SQLHelper.matches</action>
<action dev="gommma" type="fix" issue="2567724" due-to="armandjanssen"> overridden setUpDatabaseConfig not called</action>
<action dev="gommma" type="fix" issue="2549683" due-to="chuanghs">DB2 problem after 2.4</action>
<action dev="gommma" type="fix" issue="2517257" due-to="jhattat"> Mysql Linux metatdata UpperCase Comparison</action>
<action dev="gommma" type="fix" issue="2616420" due-to="ihr-staal"> JTDS Driver causes warning in class AbstractTableMetaData</action>
<action dev="gommma" type="add" issue="1956543" due-to="jeffjensen">Add DatabaseConnection methods to support PreparedStatements</action>
</release>
<release version="2.4.3" date="Jan 20, 2009" description="Bugfixes, some small additions">
<action dev="gommma" type="fix" issue="2023994" due-to="marney"> Simplify use of custom datatype factory for DBTestCase</action>
<action dev="gommma" type="fix" issue="2475264" due-to="erik.van.zijst"> problem when verifying against an XmlDataSet</action>
<action dev="gommma" type="fix" issue="1182289" due-to="jamapor"> IDENTITY_INSERT : Check for identity column incorrect</action>
<action dev="gommma" type="fix" issue="1537894" due-to="skuzey"> possibly i18n problem</action>
<action dev="gommma" type="fix" issue="2494501" due-to="rogerrabbitpro"> FailureHandler is not propagated to data comparison stage</action>
<action dev="gommma" type="fix" issue="2486800" due-to="macha64"> Warning message "PostgreSQL not be supported"</action>
<action dev="gommma" type="update" issue="1690721" due-to="cdubet"> short BLOB are not correctly managed</action>
<action dev="gommma" type="fix" issue="2489228" due-to="xianpants"> MySQL AmbiguousTableNameException incorrectly thrown</action>
<action dev="gommma" type="add" issue="1452382" due-to="akhilss"> TableName pattern filtering</action>
</release>
<release version="2.4.2" date="Dec 17, 2008" description="Bugfixes, some small additions">
<action dev="gommma" type="fix" issue="2356800" due-to="finneyj-gh"> Cannot extract contents of table with a column named "AS"</action>
<action dev="gommma" type="fix" issue="2382766" due-to="DaCoTa"> MySQL case sensitive problem in dataset creation</action>
<action dev="gommma" type="add" issue="2390557" due-to="gommma">Add StringIgnoreCase DataType</action>
<action dev="gommma" type="fix" issue="2391757" due-to="juergenzimmermann"> FEATURE_CASE_SENSITIVE_TABLE_NAMES doesn't work completely (fixed wrong DatabaseConfig property)</action>
<action dev="gommma" type="fix" issue="2392770" due-to="nemuzuka"> org.dbunit.dataset.datatype.TypeCastException</action>
<action dev="gommma" type="fix" issue="2398926" due-to="xianpants"> SLF4J maven dependencies aren't quite correct</action>
<action dev="gommma" type="add" issue="2407106" due-to="brentplump"> Include table name in cyclic dependency exception</action>
<action dev="gommma" type="fix" issue="2439408" due-to="claus437"> Insert fails on Oracle multiple schemas</action>
</release>
<release version="2.4.1" date="Dec 03, 2008" description="Updates and bugfixes only">
<action dev="gommma" type="update" due-to="gommma">Updated slf4j dependencies to version 1.5.6.</action>
<action dev="gommma" type="fix" issue="1628896" due-to="jeromevdl">No metadata Tables found</action>
<action dev="gommma" type="fix" issue="2356010" due-to="gommma">Oracle problem rel 2.4 in createQueryTable</action>
<action dev="gommma" type="fix" issue="2370993" due-to="schedin"> Cannot insert table data with self-reference in 2.4.0</action>
</release>
<release version="2.4.0" date="Nov 27, 2008" description="Some API changes, features added, bugfixes">
<action dev="felipeal" type="add" issue="2235876" due-to="felipeal">Refactor Assertion class</action>
<action dev="felipeal" type="fix" issue="2198914" due-to="felipeal">When comparing empty tables, column info should be ignored</action>
<action dev="felipeal" type="add" issue="2122413" due-to="felipeal">Added "constants" for DatabaseOperation wrappers</action>
<action dev="gommma" type="update" due-to="gommma">ISearchAlgorithm.search returns strongly typed ListOrderedSet instead of a normal Set so that TableDependencyHelper can return tables in correct order. API change.</action>
<action dev="gommma" type="fix" issue="1628105" due-to="ozonobon"> XmlWriter can't write nested CDATA sections</action>
<action dev="gommma" type="fix" issue="1464982" due-to="philbarr"> XMLType Support for Oracle - Again</action>
<action dev="gommma" type="fix" issue="2122773" due-to="MadMatt04"> QueryDataSet does not cache query results - Implies API change - new method IDatabaseConnection.createTable(String tableName)</action>
<action dev="gommma" type="update" issue="2132121" due-to="gommma">Fail-Fast if AmbiguousTableNames found</action>
<action dev="gommma" type="add" issue="1735092" due-to="stritti"> [PATCH] Support Oracle SQLLoader files for datasets - refactored the CSV Pipeline infrastructure so that it can be reused for sqlldr files</action>
<action dev="gommma" type="update" due-to="gommma">Updated apache commons-collections from 3.1 to 3.2.1</action>
<action dev="gommma" type="fix" issue="1159489" due-to="SriniRang"> BigDecimal values read by XlsDataSet have wrong precision</action>
<action dev="gommma" type="add" issue="2148079" due-to="gommma">give tolerated delta as percentage in floating-point compare</action>
<action dev="gommma" type="remove" issue="2148099" due-to="gommma">Remove commons-lang dependency</action>
<action dev="gommma" type="update" issue="1180734" due-to="che---"> DbUnitTask#createConnection</action>
<action dev="gommma" type="add" issue="1432308" due-to="hackmann"> FlatDtdProducer does not support Element dataset ANY</action>
<action dev="gommma" type="fix" issue="1344618" due-to="ianjoyce"> tinyint being ignored</action>
<action dev="gommma" type="fix" issue="1194928" due-to="rahulr"> DBUnit does not recognise "Unsigned" INTEGER columns</action>
<action dev="gommma" type="fix" issue="1063128" due-to="djocal"> FlatXMLdataSet counts 14 tables instead of 1 table of 14 row</action>
<action dev="gommma" type="fix" issue="2163902" due-to="olegch"> Better reporting of extra columns in FlatXmlProducer</action>
<action dev="gommma" type="fix" issue="2163897" due-to="olegch"> BufferedConsumer never cleans _allRows</action>
<action dev="gommma" type="fix" issue="2119648" due-to="powerlord">new SortedTable throws NoSuchColumnException</action>
<action dev="gommma" type="fix" issue="2122773" due-to="MadMatt04"> QueryDataSet does not cache query results</action>
<action dev="gommma" type="fix" issue="1214252" due-to="bilaco"> problem because tableName is case insensitive</action>
<action dev="gommma" type="fix" issue="1531883" due-to="fordfrog"> DatabaseSequenceFilter infinite loop on cyclic dependency</action>
<action dev="gommma" type="update" due-to="gommma">Performance improvement in Assertions.assertEquals(ITable expected, ITable actual) - Lookup the DataTypes for every column only once and not for every single row</action>
<action dev="gommma" type="fix" issue="2166291" due-to="lyrzine"> Field forgot under insert step - enabled columnSensing feature for ant task when format "flat" is used</action>
<action dev="gommma" type="add" issue="1196357" due-to="ips_khanwale"> Need a way to NOT pretty format xml</action>
<action dev="gommma" type="add" issue="2212329" due-to="gommma">Additional column info also for filtered columns</action>
<action dev="gommma" type="update" issue="1277038" due-to="lenny"> QuerySet docs (includes little refactoring)</action>
<action dev="gommma" type="add" issue="2041400" due-to="moschen">add primaryKeyFilter-Property in ant</action>
<action dev="gommma" type="add" issue="1371813" due-to="dsyer"> Make configuration elements settable in ant (see 2041400)</action>
<action dev="gommma" type="add" issue="1108976" due-to="Matty70"> Choose encoding for ant export task</action>
<action dev="gommma" type="fix" issue="564041" due-to="james_a_woods"> Share transaction with InsertIdentityOp.</action>
<action dev="gommma" type="fix" issue="1798605" due-to="gianasista">New Datatype MySqlDataTypeFactory</action>
<action dev="gommma" type="add" issue="1897627" due-to="felipeal"> Remove JUnit dependency</action>
<action dev="gommma" type="add" issue="2241776" due-to="gommma">Provide the complete diff of 2 tables</action>
<action dev="gommma" type="fix" issue="2017635" due-to="paul0al"> MySqlDataTypeFactory incorrectly maps TinyInt</action>
<action dev="gommma" type="fix" issue="2263530" due-to="alekssokolov"> Excel processing error - update from POI-3.1-FINAL to POI-3.2-FINAL. Date values are read/written as Numeric values for now since the POI Date handling is not consistent (i.e. write Date and read the written Date do not provide equal Date objects).</action>
<action dev="gommma" type="fix" issue="2230097" due-to="stevensa"> dataset generated with getAllDependentTables contradicts DTD</action>
<action dev="gommma" type="fix" issue="1644650" due-to="j_linz"> MetaData get() are Pattern-Like</action>
<action dev="gommma" type="update" issue="1897620" due-to="felipeal"> Improvements on HxxxxDataFactory</action>
</release>
<release version="2.3.0" date="Sep 11, 2008" description="Some API changes, features added, bugfixes, performance improvements in assertions. See migration guide for additional help">
<action dev="tychobrailleur" type="fix" issue="1968640" due-to="tychobrailleur">Trimming is now done on Excel column names to prevent NoSuchColumnException.</action>
<action dev="rlogiacco" type="fix" issue="1981449" due-to="gommma"> Patch for Bug #1421590 "Problem in data import if all the columns are not populated"</action>
<action dev="tychobrailleur" type="fix" issue="1975499" due-to="gommma">NoSuchColumnException now thrown when column name does not exist.</action>
<action dev="gommma" type="add" issue="1969355" due-to="yanm-sdfc"> Patch: some extra comparison methods for Assertion.</action>
<action dev="gommma" type="add" issue="1966517" due-to="gommma">Assertion.equals to provide more info about failure</action>
<action dev="tychobrailleur" type="fix" issue="1636182" due-to="tychobrailleur"> StreamingDataSet.toString() now returning default value rather UnsupportedOperationException.</action>
<action dev="gommma" type="add" issue="1993243" due-to="gommma">Performance optimization getColumnIndex() - Implies API change: new method ITableMetaData.getColumnIndex</action>
<action dev="gommma" type="add" issue="1959771" due-to="gommma">Support RowFilter on ITable</action>
<action dev="gommma" type="add" issue="1961269" due-to="gommma">support for tolerated delta in floating-point comparisons - Implies API change: new method IDataTypeFactory.createDataType(int sqlType, String sqlTypeName, String tableName, String columnName)</action>
<action dev="tychobrailleur" type="add" due-to="tychobrailleur">Added batchSize as a parameter.</action>
<action dev="gommma" type="add" issue="1358137" due-to="rinkrank"> Excel support in Ant task</action>
<action dev="gommma" type="add" issue="1176380" due-to="easyproglife">Bad comparison in SortedTable</action>
<action dev="gommma" type="add" due-to="gommma">Added fetchSize as a parameter.</action>
<action dev="gommma" type="add" issue="1685474" due-to="jacobrobertson"> ReplacementTable - allow fail if value not replaced</action>
<action dev="tychobrailleur" type="fix" issue="2009747" due-to="tychobrailleur">Fixing erroneous logger.error in BytesDataType.typeCast().</action>
<action dev="tychobrailleur" type="add" issue="2004349" due-to="gommma">Refactoring of column-related methods.</action>
<action dev="gommma" type="fix" issue="2007635" due-to="phisf"> TablesDependencyHelper with Oracle schema bug - Implies API change - the constructors of DatabaseConnection throw a DatabaseUnitException if the connection/schema are not valid</action>
<action dev="gommma" type="add" issue="2010546" due-to="dgolda"> Assertion: replace Assert.fail with ComparisonFailure</action>
<action dev="gommma" type="add" issue="2010567" due-to="dgolda"> Alternative support for CLOB and BLOB in Oracle 11 JDBC</action>
<action dev="gommma" type="fix" issue="1499591" due-to="loedolff"> datatypeFactory documentation note needed</action>
<action dev="gommma" type="fix" issue="2014884" due-to="pasha_z"> getAllDependentTables ORA-01000: maximum open cursors exceed</action>
<action dev="gommma" type="fix" issue="1746373" due-to="ByTe-ErRoR"> getAllDependentTables didn't work with full qualified names</action>
<action dev="gommma" type="add" due-to="gommma">Added constructors to NoSuchColumnException taking table name and column name as arguments - set old constructors to deprecated</action>
<action dev="gommma" type="fix" issue="1789402" due-to="Jondi"> Exception in DTD generation - Implies API behaviour change. DatabaseTableMetaData.getColumns() does not throw a NoColumnsFoundExcepion anymore but returns an empty Column[] when a table does not have any dbunit-supported columns</action>
<action dev="gommma" type="add" due-to="gommma">Assertion.equals provides more information than just the column count when a column mismatch between expected and result tables was found. All columns are reported so that the user can see immediately which columns are missing</action>
<action dev="gommma" type="add" due-to="gommma">Write validation message when the configured IDataTypeFactory probably does not match to the current database system. The validation implicitly takes place when AbstractTableMetaData.getDataTypeFactory() is invoked.</action>
<action dev="gommma" type="add" due-to="gommma">Maven pom.xml updates: Added ciManagement section, added some plugins for reporting</action>
<action dev="gommma" type="fix" issue="1497369" due-to="bascan"> Test error: testExportWithQuerySet</action>
<action dev="gommma" type="add" issue="2012491" due-to="rpuch"> Topological sorting of tables when exporting</action>
<action dev="gommma" type="fix" issue="2012495" due-to="rpuch">Use DataType.BLOB instead of DataType.LONGVARBINARY</action>
<action dev="gommma" type="fix" due-to="rpuch">DbUnit is only JDK 1.4 compatible and not 1.3 (as claimed until now). Several methods are in use that did not exist in JDK 1.3. To build with JDK 1.4 and maven it is now required to set the environment variable JAVA_1_4_HOME to your JDK 1.4 home directory</action>
<action dev="gommma" type="add" issue="2029693" due-to="gommma">Update apache POI to latest release (2.5.1 -> 3.1)</action>
<action dev="gommma" type="fix" issue="1984596" due-to="bustuila"> Inserting of clobs fails</action>
<action dev="gommma" type="fix" issue="1214234" due-to="bilaco"> method getRowCount don't use schema.</action>
<action dev="gommma" type="fix" issue="1224643" due-to="bugmenot"> Column count for empty XlsDataSet returns 0.</action>
<action dev="gommma" type="fix" issue="948472" due-to="gmathijssen"> Values with newlines cannot be compared with assertEquals.</action>
<action dev="gommma" type="fix" issue="1031870" due-to="chadwl"> Infinite wait in StreamingIterator.</action>
<action dev="gommma" type="fix" issue="1144269" due-to="berni123"> Types.BOOLEAN not recognized.</action>
<action dev="gommma" type="add" issue="1448932" due-to="palsnagaraj"> "compare" + "table" tag throw NoSuchTableException - added more information about the cause to the thrown exception.</action>
<action dev="gommma" type="fix" issue="1339675" due-to="vanhill21">DTD Creation and Parsing - throw meaningful exception if DTD ELEMENT declaration is missing.</action>
<action dev="gommma" type="add" issue="2059253" due-to="andreaskornstaedt"> Added more information in case of a wrong configured DataTypeFactory.</action>
</release>
<release version="2.2.3" date="May 23, 2008" description="Bugfixing release">
<action dev="rlogiacco" type="fix" issue="1967969" due-to="rlogiacco">Missing License file in distribution jars</action>
<action dev="tychobrailleur" type="fix" issue="1925603" due-to="tychobrailleur">Removed redundant and erroneous ERROR logging.</action>
<action dev="rlogiacco" type="fix" issue="1955585" due-to="rlogiacco">Memory leak.</action>
<action dev="tychobrailleur" type="add" due-to="tychobrailleur">A warning message is now displayed when rows contain more columns than the first row.</action>
</release>
<release version="2.2.2" date="May 5, 2008" description="Bugfixing release">
<action dev="rlogiacco" type="fix" issue="1953115" due-to="Mike Norrish"> End of table name cut off when bracketed in FlatDtdProducer</action>
<action dev="rlogiacco" type="fix" issue="1926302" due-to="rlogiacco"> IncompatibleClassChangeError with 2.2.1</action>
<action dev="rlogiacco" type="fix" issue="1955929" due-to="rlogiacco">junit jar-file should be JDK 1.4 compatible</action>
<action dev="rlogiacco" type="fix" issue="1475565" due-to="rlogiacco">Version 2.2-dev, Java 1.4 compatibility issue</action>
<action dev="tychobrailleur" type="fix" issue="1925603" due-to="tychobrailleur">Changed logger.error into logger.debug when the exception can be disregarded.</action>
<action dev="tychobrailleur" type="fix" issue="1806363" due-to="Brian Atkinson">Fixed issue with CLOB datatype in Derby.</action>
</release>
<release version="2.2.1" date="March 17, 2008" description="Another official release after a long, long time...">
<action dev="rlogiacco" type="add" due-to="rlogiacco">Added SLF4J dependency and logging statements</action>
<action dev="felipeal" type="fix" issue="1897627" due-to="felipeal">Removed JUnit dependency on IDatabaseTester implementations</action>
<action dev="felipeal" type="add" issue="1897612" due-to="felipeal">Created H2 data factory</action>
<action dev="felipeal" type="add" issue="1798605" due-to="Vera Wahler"> New point Datatype on MySqlDataTypeFactory</action>
<action dev="felipeal" type="fix" issue="1735506" due-to="Greg Morgan"> Improvements on M2 build - Additional files</action>
<action dev="rlogiacco" type="fix" issue="1849219" due-to="JensFransson"> NPE in FlatDtdProducer.java at line 224</action>
<action dev="rlogiacco" type="fix" issue="1849165" due-to="Markus Thielen"> Bug in XmlWriter / escapeXml</action>
<action dev="rlogiacco" type="fix" issue="1786425" due-to="rlogiacco">Database schema with escape pattern doesn't work</action>
<action dev="rlogiacco" type="fix" issue="1712122" due-to="Chris R. Salch"> Misleading error reported by RowOutOfBoundsException</action>
<action dev="rlogiacco" type="fix" issue="1328956" due-to="Reuben Firmin"> NPE In InsertIdentityOperation</action>
<action dev="rlogiacco" type="fix" issue="1710743" due-to="Will Sargent"> DataSourceDatabaseTest does not use setSchema()</action>
<action dev="rlogiacco" type="fix" issue="1637089" due-to="Chuck Hill"> Columns in ORDER BY Not Quoted</action>
<action dev="rlogiacco" type="fix" issue="1214536" due-to="Sébastien Le Callonnec">ReplacementTable broken for multiple replacements</action>
<action dev="rlogiacco" type="fix" issue="1721870" due-to="Sébastien Le Callonnec">Null pointer exception in FlatXMLDataSet.write(compositeDS)</action>
<action dev="rlogiacco" type="fix" issue="1721870" due-to="Sébastien Le Callonnec">Null pointer exception in FlatXMLDataSet.write(compositeDS)</action>
<action dev="rlogiacco" type="fix" issue="1459205" due-to="Sébastien Le Callonnec">Problem with Oracle 10g Recyclebin</action>
</release>
<release version="2.2" date="December 28, 2006" description="First official release in a long, long time...">
<action dev="felipeal" type="add" issue="1473744" due-to="aalmiray">Enable TestCase compositions</action>
<action dev="felipeal" type="add" due-to="felipeal">Migrate SCM to Subversion</action>
<action dev="felipeal" type="fix" issue="1494257" due-to="Bas Cancrinus"> Support for MySQL 5.0 boolean datatype</action>
<action dev="felipeal" type="add" issue="1482990" due-to="felipeal">Added pom.xml so it can be built by Maven 2.</action>
<action dev="felipeal" type="add" due-to="felipeal">XmlDataSetWriter now has a flag to include column's name as comment.</action>
<action dev="felipeal" type="add" issue="1273949" due-to="felipeal">Added org.dbunit.util.search and org.dbunit.database.search packages, whose classes can be used to search tables depedencies for a given table.</action>
<action dev="epugh" due-to="John Lewis" type="add" issue="1264212"> Add "transaction" attribute to ant tasks to wrap operations in a single transaction. Can make operations faster.</action>
<action dev="epugh" due-to="Jeremy Frens" type="fix">Typo in howto example</action>
<action dev="epugh" due-to="Cris Daniluk" type="add">Properly support writing NCLOBs to Oracle</action>
<action dev="epugh" type="add" due-to="Dion Gillard" issue="1114490"> Support CSV files from a URL (e.g. jar file) + CSV fixes</action>
<action dev="epugh" type="fix" due-to="epugh">Fix the driver in classpath/driver not in classpath to always work regardless of configured driver.</action>
<action dev="epugh" type="fix" due-to="Dion Gillard" issue="1114487"> Typo in test class AbstractDataSetTest</action>
<action dev="epugh" type="add" due-to="Klas Axell">new HsqldbDataTypeFactory for working with booleans in HsqlDB.</action>
</release>
<release version="2.1" date="May 31, 2004" description="Multiple bugfixes and enhancements.">
<action dev="" type="add">741394 - New database compare Ant tag. See Ant task documentation.</action>
<action dev="fspinazzi" type="add" due-to="fspinazzi">New Comma Separated Values (CSV) dataset implementation.</action>
<action dev="" type="add">824328 & 948479 - Ability to add DOCTYPE declaration when writing a flat Xml dataset. See FAQ.</action>
<action dev="" type="add">884422 - FlatDtdWriter has now the ability to generate DTDs with choice model instead of sequence model.</action>
<action dev="" type="add">Ability to import external file for binary data types like BLOB; the value can be either a qualified URL or a file path name.</action>
<action dev="" type="update">Do not omit NULL values anymore in INSERT statements. Now only XmlDataSet's <none/> tag are omitted. With FlatXmlDataSet you must use the ReplacementDataSet to achieve the same behavior.</action>
<action dev="" type="fix">937732 - XlsDataSet now use UTF-16 encoding to support Asian characters. Patch submitted by Shuhei Kondo.</action>
<action dev="" type="fix">Applied XlsTable empty table detection patch submitted by Deepak Kaimal.</action>
<action dev="" type="fix">Added back FlatXmlDataSet constructors taking URL as argument missing in version 2.0.</action>
<action dev="" type="fix">918631 & 925585 - Fixed FlatXmlDataSet constructors taking InputStream/Reader for loading DTD.</action>
<action dev="" type="fix">DELETE_ALL operation now deletes tables only *once* in reverse order they are encountered. Before, duplicate tables were resulting in multiple deletes. Patch submitted by John Hurst.</action>
<action dev="" type="update">DELETE_ALL operation now compatible with StreamingDataSet.</action>
<action dev="" type="fix">947330 - Now closing ResultSet before Statement to fix exceptions thrown by the Firebird JDBC driver and the OpenBase 8.0 JDBC driver.</action>
<action dev="" type="fix">921869 - Fixed ParameterIndexOutOfBoundsException with InterBase.</action>
<action dev="" type="update">947809 - Moved createMetaData() static method from AbstractResultSet to DatabaseTableMetaData and made it public. Can now be used to create ITable from a ResultSet.</action>
<action dev="" type="fix">Support for large Oracle BLOB. Must use OracleDataTypeFactory.</action>
<action dev="" type="add">Oracle LONG RAW data type support via OracleDataTypeFactory. Original patch submitted by Markus Muller.</action>
<action dev="" type="fix">Added back support for Oracle FLOAT missing in DbUnit 2.0. Must use OracleDataTypeFactory.</action>
<action dev="" type="add">Support for Oracle NCHAR2 as proposed by Deepak Kaimal. Must use OracleDataTypeFactory.</action>
<action dev="" type="update">Added DataType.isDateTime() method proposed by Ayman Mahfouz.</action>
<action dev="" type="add">726366 & 884422 - Added IColumnFilter interface. Can be used to filter out some table columns. See FAQ.</action>
<action dev="" type="update">Renamed ITableFilter.isValidName() method to accept() to be consistent with the new IColumnFilter interface. </action>
<action dev="" type="add">955354 - Ability to determine the primary keys with IColumnFilter interface instead of DatabaseMetaData.getPrimaryKeys(). Primary keys sequence is not predictable when using filter. See FAQ.</action>
<action dev="" type="add">Ability to plug custom IDENTITY column detection strategy for InsertIdentityOperation when using user defined types. See FAQ.</action>
<action dev="" type="add">Added DefaultTableFilter class, which combines capability of the Include/ExcludeTableFilter classes.</action>
</release>
<release version="2.0" date="January 22, 2004" description="Major release.">
<action dev="" type="update">Mavenized the build and the website!</action>
<action dev="" type="update">Now use SAX2 instead of Electric XML DOM parser. Streamed mode allows importing and exporting very large XML datasets with minimal memory consumption.</action>
<action dev="" type="add">Flat XML dataset validation.</action>
<action dev="" type="add">New ITableIterator interface used to iterate thru dataset tables. Allows lazy tables initialization for some dataset implementations. The IDataSet.getTables method have been deprecated and usage should be avoided.</action>
<action dev="" type="update">Global System properties are not supported anymore. You must now use the new DatabaseConfig object to alter DbUnit behaviours. </action>
<action dev="" type="add">Configurable data type factory to easily integrates new data types with the DbUnit core. Factory implementations available for some database vendors. Submit your own!</action>
<action dev="" type="add">Oracle TIMESTAMP data type support via the OracleDataTypeFactory.</action>
<action dev="" type="fix">Fix truncated Oracle DATE. Must use the OracleDataTypeFactory.</action>
<action dev="" type="fix">Fix for Oracle CLOB greater than 4000 bytes. Must use the OracleDataTypeFactory.</action>
<action dev="" type="add">MySQL 'longtext' data type support via the MySqlDataTypeFactory.</action>
<action dev="" type="add">DB2 XML data types support via the Db2DataTypeFactory.</action>
<action dev="" type="add">Database views support.</action>
<action dev="" type="add">New pluggable filter strategies for DataSetFilter. You can now exclude/include tables using wildcard patterns.</action>
<action dev="" type="add">Ability to sort tables by their dependencies with the new DatabaseSequenceFilter strategy.</action>
<action dev="" type="add">New ReplacementDataSet decorator, which can replace decorated dataset values on the fly. Can be used with flat XML dataset as a new way to specify null values.</action>
<action dev="" type="add">New XlsDataSet. An MS Excel dataset implementation. Uses the Jakarta POI package.</action>
<action dev="" type="update">Assertion.assertEquals is now performing typed comparison instead of string representation comparison.</action>
<action dev="" type="update">INSERT, CLEAN_INSERT and REFRESH operations do not override database default values anymore with null values. Null values are now omitted from insert statements. Operations use multiple prepared statements for the same table, when null values vary from row to row.</action>
<action dev="" type="update">Moved InsertIdentityOperation to "org.dbunit.ext.mssql" package to be consistent with other vendor extensions. Temporary keep a deprecated copy in "org.dbunit.operation.mssqlserver" to ease transition to DbUnit 2. </action>
</release>
<release version="1.5.6" date="October 5, 2003">
<action dev="" type="fix">786543 - NULL primitive values incorrectly returned as zero (0).</action>
<action dev="" type="fix">Fix Oracle CLOB values incorrectly returned as NULL.</action>
</release>
<release version="1.5.5" date="July 16, 2003">
<action dev="" type="update">DatabaseDataSet improvements: faster access to metadata cache and keep original database table ordering.</action>
<action dev="" type="update">Better handling of the various data types in general. WARNING! New abstract methods have been added to the DataType class. This change may break your environment if you have implemented your own data types.</action>
<action dev="" type="update">More efficient XmlDataSet writing. Now put values in CData block only when necessary.</action>
<action dev="" type="update">Do not enable batched statement by default anymore. Many JDBC drivers have problems with this feature.</action>
<action dev="" type="fix">Fixed table name issue with case sensitive database.</action>
<action dev="" type="fix">615636 & 735095 - Incorrect XML encoding. Better handling of the XML encoding while writing and reading XML datasets. InputStream and OutputStream methods in XML dataset implementations are no more deprecated.</action>
<action dev="" type="fix">736439 - Problems with InsertOperation and triggers.</action>
<action dev="" type="fix">736967 - Wrong scale for numeric value with the jConnect driver for Sybase ASE.</action>
</release>
<release version="1.5.1" date="April 4, 2003">
<action dev="" type="fix">Fixed DELETE operation that was not deleting tables in reverse order as expected.</action>
<action dev="" type="fix">712329 - setObject fails on BEA JDriver for MS-SQL.</action>
<action dev="" type="update">DbUnitTask DTD export optimization. </action>
<action dev="" type="update">REFRESH operation optimization.</action>
</release>
<release version="1.5" date="March 1, 2003">
<action dev="" type="fix">Multiple bugfixes.</action>
<action dev="" type="add">533321 - DbUnit is now case insensitive.</action>
<action dev="" type="add">555455- Supports table names escaping (see escapePattern property).</action>
<action dev="" type="add">551925 - Allows duplicate table names in datasets. A new method, getTables(), have been added in the IDataSet interface.</action>
<action dev="" type="add">590245 & 684610 - New Reader and Writers methods to read and write XML datasets. InputStream and OutputStream methods are now deprecated.</action>
<action dev="" type="add">New SortedTable and SortedDataSet decorator classes.</action>
<action dev="" type="add">645691 - Added the <classpath> nested element in DbUnitTask ant task; used to load the JDBC classes.</action>
<action dev="" type="add">Added <query> nested element in DbUnitTask <export>. Allows exporting the result of a SELECT as a table of a dataset. See ant task documentation.</action>
<action dev="" type="add">New Canoo Webtest integration guide.</action>
</release>
<release version="1.4" date="July 17, 2002">
<action dev="" type="add">DbUnitTask for Ant contributed by Timothy Ruppert and Ben Cox.</action>
<action dev="" type="update">Moved the Base64 class to the org.dbunit.util package because Visual Age for Java is not able to handle classes located in the default package.</action>
<action dev="" type="update">Added system properties documentation.</action>
<action dev="" type="update">542034 - Detect ambiguous table names. </action>
<action dev="" type="add">542462 - Added a system property to disable usage of batch statement even if the target database support it..</action>
<action dev="" type="update">545238 - Sort tables prior to comparing them. DbUnit now generates an ORDER BY clause in the select statement used by DatabaseDataSet.getTable(). Rows are sorted by primary keys.</action>
<action dev="" type="update">554249 - None column values.</action>
<action dev="" type="add">Added support for BLOB and CLOB data types.</action>
</release>
<release version="1.3" date="April 4, 2002">
<action dev="" type="add">Added support for binary data types: BINARY, VARBINARY and LONGVARBINARY. Binary data is persisted in xml datasets using the base64 encoding scheme.</action>
<action dev="" type="update">Deprecated the DataSetUtils.assertEquals() methods. You should now use Assertion.assertEquals(). </action>
<action dev="" type="fix">533537 - FlatXmlDataSet and null values.</action>
<action dev="" type="fix">533537 - Problem with single quotes.</action>
<action dev="" type="fix">534810 - Problem when primary key include all columns</action>
</release>
<release version="1.2.4" date="March 19, 2002">
<action dev="" type="add">Added support for multiple schemas per connection. See FAQ document.</action>
<action dev="" type="remove">Removed element <none/> from dataset.dtd. This feature was incompatible with future support for the binary data types.</action>
<action dev="" type="fix">530998 - DataSetUtils.AssertEquals(ITable table, ITable table). </action>
<action dev="" type="fix">533540 - Problem with DATE, TIME and TIMESTAMP.</action></release>
<release version="1.2" date="March 15, 2002">
<action dev="" type="add">Added the flat XML dataset format. See the FlatXmlDataSet in Core Components document.</action>
<action dev="" type="add">Added database data verification feature. See Getting Started document.</action>
<action dev="" type="update">Updated Electric XML parser to version 3.2. </action></release>
<release version="1.1" date="March 10, 2002">
<action dev="" type="update">Connections are now closed in each setUp() and tearDown(). You must override the DatabaseTestCase.closeConnection() and provide an empty body to modify this behavior. This is not recommended to bypass connection close if you use connection pooling.</action>
<action dev="" type="add">Added the IDatabaseConnection interface.</action>
<action dev="" type="add">Added the DatabaseDataSourceConnection class. This class provides support for accessing JDBC connections from a DataSource. JDBC connections are requested on demand from the DataSource.</action>
<action dev="" type="update">Multiple performance improvement.</action>
<action dev="" type="fix">526235 - Cannot export tables with JDBC-ODBC bridge and MS-SQL.</action>
</release>
<release version="1.0" date="Febuary 27, 2002" description="Initial public release.">
</release>
</body>
</document>