Add option to DatabaseBuilder for ignoring broken system catalog indexes. This is a workaround to allow jackcess to read tables from the database even if the index is non-functional
Add Automatic-Module-Name in order to make Jackcess safe to use in the module path in Java9+ environments.
Make a few classes and constants public in order to facilitate use in different packages.
Alter access to java.sql classes so that usage is dependent on whether or not the module is loaded in Java 9+ environments. Tweak a few methods to no longer throw SQLException.
Add support for Access 97 general collation order, enabling indexes to be used with Access 97 dbs
Add Stream support to all interfaces which are Iterable
Enabled expression evaluation by default
Change the default DateTimeType to LOCAL_DATE_TIME
Add support for Predicate value patterns in cursor find methods. Add PatternColumnPredicate for creating Predicate instances which can match values using various pattern syntaxes
Jackcess now requires a Java 8+ runtime. As part of this update, all dependencies have been updated to their latest versions
Add support for Java 8 Temporal types. Date/time fields will now accept as input most Temporal types (e.g. LocalDate, LocalTime, LocalDateTime, etc). Additionally, date/time fields can optionally be changed to output LocalDateTime instead of Date. This behavior is configurable on a per-Database basis by setting the DateTimeType for the database. All Date based APIs now have a parallel LocalDateTime API. Note that only one of those will work depending on how the Database is configured. The legacy Date support will be the default initially, but is deprecated and may be removed in the future
Add support for Path. Existing File based APIs now have parallel versions which utilize Path
The Apache commons-lang dependency has been replaced with commons-lang3
Implement the majority of the missing standard functions: FormatCurrency, FormatDateTime, FormatNumber, FormatPercent, Val, DateAdd, DateDiff, DatePart, MonthName, WeekdayName, DDB, IPmt, PPmt, Rate, SLN, SYD, Format, Replace, StrConv. (Note that the internal API for the expr package has changed in an incompatible way. However, since the API is still experimental, this was deemed acceptable for a minor version.). Note that many of the financial functions were copied and adapated from the Apache POI and UCanAccess projects (which are both under the Apache License 2.0)
Implement more type coercion methods for expressions. Add support for hex/oct integer strings. Add support for number strings with commas. Add support for coercing numeric String to a date/time value. Add support for date/time values with implicit (current) year
Ignore column validators for read-only dbs. This will avoid irrelevant failures when reading databases which have invalid column properties
Implement support for optional expression evaluation. When enabled, expressions will be evaluated for default values, calculated fields, field validators, and record validators.
Default values will now be respected when expression evaluation is enabled (currently disabled by default).
Implement support for partial index lookups. Efficient IndexCursor lookups can now be done with multi-column indexes using only some of the columns in the index
Cover the GENERIC_JET4 format in unit tests, thanks to Gord Thompson
Allow inserting negative auto number fields, thanks to Gord Thompson
Add CustomLinkResolver which facilitates loading linked tables from files which are not access databases
When opening a database for a format which is read-only, automatically open the channel as read-only (instead of throwing an exception if readOnly is false)
Add support for global usage maps which are reference type maps
Change multi-value complex columns so that they return all relevant column properties
Add some initial support for Table metadata modification. Columns and Indexes can now be added to an existing table (using ColumnBuilder.addToTable and IndexBuilder.addToTable respectively)
Add the ability to create Relationships using RelationshipBuilder. With this support finally brings the ability to create foreign key indexes (aka integrity enforcement in Relationships)