| Version | Date | Description |
|---|---|---|
| 5.0.1 | 2026-09-19 | |
| 5.0.0 | 2026-09-12 | |
| 4.0.12 | 2026-09-12 | |
| 4.0.11 | 2026-07-06 | |
| 4.0.10 | 2025-10-25 | |
| 4.0.8 | 2025-01-05 | |
| 4.0.7 | 2024-06-24 | |
| 4.0.6 | 2024-05-11 | |
| 4.0.5 | 2023-01-26 | |
| 4.0.4 | 2022-10-29 | |
| 4.0.3 | 2022-10-29 | |
| 4.0.2 | 2022-08-26 | |
| 4.0.1 | 2021-06-21 | |
| 4.0.0 | 2021-01-20 | |
| 3.5.1 | 2020-09-10 | |
| 3.5.0 | 2020-07-31 | |
| 3.0.1 | 2019-04-13 | |
| 3.0.0 | 2019-02-08 | Update to Java 8 |
| 2.2.3 | 2019-02-05 | |
| 2.2.2 | 2019-01-05 | |
| 2.2.1 | 2018-12-22 | |
| 2.2.0 | 2018-09-08 | Add support for expression evaluation |
| 2.1.12 | 2018-06-25 | |
| 2.1.11 | 2018-03-04 | |
| 2.1.10 | 2018-01-18 | |
| 2.1.9 | 2017-10-09 | |
| 2.1.8 | 2017-06-25 | |
| 2.1.7 | 2017-05-17 | |
| 2.1.6 | 2016-11-29 | |
| 2.1.5 | 2016-10-03 | |
| 2.1.4 | 2016-05-18 | |
| 2.1.3 | 2015-12-04 | |
| 2.1.2 | 2015-06-22 | |
| 2.1.1 | 2015-05-14 | |
| 2.1.0 | 2015-04-16 | Relicense to Apache License |
| 2.0.9 | 2015-03-21 | |
| 2.0.8 | 2014-12-26 | |
| 2.0.7 | 2014-11-22 | |
| 2.0.6 | 2014-10-04 | |
| 2.0.5 | 2014-09-17 | |
| 2.0.4 | 2014-04-05 | |
| 2.0.3 | 2014-01-30 | |
| 2.0.2 | 2013-11-30 | |
| 2.0.1 | 2013-10-13 | |
| 2.0.0 | 2013-08-26 | Major API Revision |
| 1.2.14.3 | 2013-10-13 | |
| 1.2.14.2 | 2013-08-25 | |
| 1.2.14.1 | 2013-08-11 | |
| 1.2.14 | 2013-07-23 | |
| 1.2.13 | 2013-06-18 | |
| 1.2.12 | 2013-05-09 | |
| 1.2.10 | 2013-02-18 | |
| 1.2.9 | 2012-10-15 | |
| 1.2.8 | 2012-07-10 | |
| 1.2.7 | 2012-04-02 | |
| 1.2.6 | 2011-12-16 | |
| 1.2.5 | 2011-10-19 | |
| 1.2.4 | 2011-05-14 | |
| 1.2.3 | 2011-03-05 | |
| 1.2.2 | 2010-11-29 | |
| 1.2.1 | 2010-08-01 | |
| 1.2.0 | 2010-04-18 | |
| 1.1.21 | 2010-01-19 | |
| 1.1.20 | 2009-11-18 | |
| 1.1.19 | 2009-06-13 | |
| 1.1.18 | 2008-11-08 | |
| 1.1.17 | 2008-09-23 | |
| 1.1.16 | 2008-07-24 | |
| 1.1.15 | 2008-06-27 | |
| 1.1.14 | 2008-04-29 | |
| 1.1.13 | 2008-03-21 | |
| 1.1.12 | 2008-02-27 | |
| 1.1.11 | 2008-01-20 | |
| 1.1.10 | 2007-12-26 | |
| 1.1.9 | 2007-07-12 | |
| 1.1.8 | 2007-02-13 | |
| 1.1.7 | 2006-10-02 | |
| 1.1.6 | 2006-08-07 | |
| 1.1.5 | 2006-07-25 | |
| 1.1.4 | 2006-6-15 | |
| 1.1.3 | 2006-2-16 | |
| 1.1.2 | 2005-8-26 | |
| 1.1.1 | 2005-8-20 | |
| 1.1 | 2005-8-12 | |
| 1.0 | 2005-4-7 |
| Type | Changes | By |
|---|---|---|
![]() |
Write text indexes in the collations which weigh a sequence of characters as a unit: czech and slovak, spanish traditional, hungarian in both its orders, norwegian and danish, croatian, serbian, bosnian and vietnamese. | jahlborn |
![]() |
Test what happens to a text index in a collation jackcess cannot write, which no test covered once the collations of this release supported every database in the test data. | jahlborn |
![]() |
Write text indexes in the french sublanguages, belgium, canada, switzerland, luxembourg and monaco, which ms access sends to the french collation and which were refused although french itself was written. | jahlborn |
![]() |
Write the upper case forms of the characters the general order collations move. Croatian, serbian, bosnian, romanian and indic in that family moved the lower case form alone. | jahlborn |
![]() |
Write text indexes in the collations which a whole sort id names rather than a locale: german phone book, which expands the umlauts, georgian modern, and romanian and indic in the access 2010 order. | jahlborn |
![]() |
Write text indexes in twelve more collations, which move a few characters against the general legacy order: spanish modern, swedish and finnish, polish, romanian, turkish, slovenian, estonian, latvian, lithuanian, icelandic, ukrainian and macedonian. | jahlborn |
![]() |
Find a row whose index entry it shares with another row. One entry can hold several rows, since the entry of a text value folds case, and a lookup read only the first of them. | jahlborn |
![]() |
Write text indexes in the french collation. French weights every character the way the general legacy order does and orders the diacritics of a value from its end. | jahlborn |
![]() |
Write text indexes for the 58 locales which the ms access locale map sends to 1033, which is most of europe: german, greek, italian, dutch, portuguese, russian, arabic, georgian, hindi and their sublanguages. None of them tailors a single character, so the weight table jackcess already has is the whole of the collation. | jahlborn |
![]() |
Read and write the collation variant, the third byte of a column's sort order field. The four bytes are the ms access sort id, and the variant separates the collations of one locale, so german phone book used to read as plain german and hungarian technical as plain hungarian. | jahlborn |
![]() |
Add Column.getColumnId, the id ms access gave a column when it was created. An id is never renumbered, so a table which has had a column deleted has gaps in its ids. | jahlborn |
![]() |
Add Column.isHidden and Column.isSecurityIdentifier for the two column flag bits which were previously unnamed. | jahlborn |
![]() |
Add Index.getProperties. An index has a property block of its own, separate from the block of the column access named it after. | jahlborn |
![]() |
Add PropertyMap.Property.isSkipHandler for the property flag bit which tells ms access to store the value without running the handler bound to the property name, and a PropertyMap.put which sets both flag bits. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Update minimum java requirement to java 11. Some code base cleanup and modernization. | jahlborn |
![]() |
Removed RuntimeIOException in favor of built in UncheckedIOException. | jahlborn |
![]() |
Removed DataType.UNKNOWN_0D. It is not a data type. | jahlborn |
![]() |
Renamed DataType.UNKNOWN_11 to DataType.BIG_BINARY, which is what ms access calls it. It is a fixed length binary column longer than the 255 byte BINARY, used only by the Data column of MSysAccessObjects. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Determine the type of a complex column from the name of its "type" table, which ms access reserves, rather than by counting the data types of that table's columns. one. | jahlborn |
![]() |
Find the foreign key column of a complex column's flat table from the flag ms access sets on it, rather than by looking for the long column which is not the autonumber. | jahlborn |
![]() |
Check the column name in MSysComplexColumns against the column being loaded, which catches a bad complex id in a column definition. | jahlborn |
![]() |
Truncate long text index entries the way ms access does, keeping the leading 508 bytes of the key and ending it with a digest of the bytes discarded. Keys longer than 510 bytes were previously written in full, so ms access could not use the index and jackcess could not find the affected rows again. | jahlborn |
![]() |
Fix the index code suffix written for "international ext" characters (which include hiragana and katakana). The suffix length grows with the number of characters using those codes, but a fixed length one was always written, so index entries for 8 or more such characters were wrong. | jahlborn |
![]() |
Some code base modernization. Note a minor exception widening in OleBlob. | jahlborn |
![]() |
Fix database corruption when adding column to table with deleted variable length columns. | jahlborn |
![]() |
Add toString to ColumnBuilder, TableBuilder and IndexBuilder. | jahlborn |
![]() |
Check that the column counts and sizes in a table definition cover the columns which are actually defined when the table is loaded. A damaged table definition now becomes read-only. | jahlborn |
![]() |
Fix the index entry written for a surrogate pair. In the general sort order the weight table gives the high surrogates four separate ranges, one of which has no weight at all, and only the first was implemented, so entries for characters above plane 1 did not match ms access. In the general legacy sort order ms access gives a surrogate no weight at all, so every entry for a supplementary character was wrong there. | jahlborn |
![]() |
Write the level of an index page into its page header. The level is the depth of the page below the leaves of the index tree, 0 on a leaf page and one more than its children on a node page. Zero was written on every page, so an index deep enough to need node pages claimed they were all at the level of the leaves. | jahlborn |
![]() |
Identify a property map by its name and its block type together. Ms access keeps index properties in their own block and names an index after its column by default, so a table commonly holds a column block and an index block with the same name. Keying on the name alone reported the index properties as the column's, and rewriting the map wrote one block instead of two, which discarded the index properties. | jahlborn |
![]() |
Keep the whole property flag byte when a property map is rewritten. Ms access uses it as a bit field: bit 0 is the ddl flag and bit 7 tells it to store the value without running the handler bound to the property name. The byte was read as a boolean and written back as 0 or 1, which invented the ddl flag on properties which did not have it and dropped bit 7 from those which did. PropertyMap.Property isDdl now reports bit 0 rather than the whole byte. | jahlborn |
![]() |
Give a column added to an existing table an unused column id. Ms access assigns each column an id which it never reuses and never renumbers, so a table which has had a column deleted has gaps in its ids. The physical column number was written as the id, which could repeat an id already in use. | jahlborn |
![]() |
Mark an index over a complex column the way ms access does, with a 2 in the byte after the index flags. | jahlborn |
![]() |
Use the file formats which ms access stores uncompressed when writing an attachment (jpg, jpeg, gif, png, zip, cab, docx, xlsx, xlsb and pptx), and deflate everything else. The previous list compressed png and office files which ms access leaves alone, and left archives raw which ms access deflates. | jahlborn |
![]() |
Linked databases are no longer resolved automatically. The default LinkResolver now refuses to open linked databases. Applications which use linked databases must configure LinkResolver.UNRESTRICTED (the previous behavior) or a resolver enforcing their own policy, or enable the allowLinkResolution system property. Note that this also affects CustomLinkResolver, whose fallback for non-custom files now denies. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Promote the global usage map to a reference map once a database grows beyond what an inline global usage map can represent (~2mb). Large databases previously retained an inline global usage map (a sliding window which no longer described the whole database), which ms access would report as invalid/corrupt during operations such as sorting a large table. Fixes 160. | jahlborn |
![]() |
Fix possible edge-case corruption when updating indexes. | jahlborn |
![]() |
Make text functions locale sensitive. | jahlborn |
![]() |
Add optional support via system property for writing "broken" indexes for unsupported sort orders. This enables building the db using jackcess and then later making the db indexes valid using ms access compact and repair. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Update commons lang3 dependency version. | jahlborn |
![]() |
Update apache poi dependency version. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Fix adding fixed length columns to an existing table. Fixes 159. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Add support for surrogate pairs in text indexes (e.g. emoticons). Fixes 157. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Make NumberFormatter locale aware, using the currently configured LocaleContext. | jahlborn |
![]() |
Account for character sizes when copying column lengths. Fixes 158. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
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. Fixes 46. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Update parent pom to fix release process. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Fix edge case which can cause table to be considered corrupt. Fixes 156. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Add Table methods to get the creation and last modified dates. | jahlborn |
![]() |
Add support for linked odbc tables. TableMetaData provides access to connection string and local TableDefinition if available. Fixes 45. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Ignore trailing spaces when creating text index entries. | jahlborn |
![]() |
Add basic support for access 2019+ dbs. | jahlborn |
![]() |
Add support for extended date/time type in access 2019+ dbs. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Add Automatic-Module-Name in order to make Jackcess safe to use in the module path in Java 9+ environments. | jahlborn |
![]() |
Make a few classes and constants public in order to facilitate use in different packages. | jahlborn |
![]() |
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. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Add more static utility methods to DatabaseBuilder to enable more succinct object construction code using static imports. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Add support for Access 97 general collation order, enabling indexes to be used with Access 97 dbs. | jahlborn |
![]() |
Add Stream support to all interfaces which are Iterable. | jahlborn |
![]() |
Enabled expression evaluation by default. | jahlborn |
![]() |
Change the default DateTimeType to LOCAL_DATE_TIME. | jahlborn |
![]() |
Add support for Predicate value patterns in cursor find methods. Add PatternColumnPredicate for creating Predicate instances which can match values using various pattern syntaxes. Fixes 43. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Add ColumnFormatter utility which can apply Column "Format" property for display of column values. | jahlborn |
![]() |
Add Database.newTableMetaDataIterable() which enables iterating through table names without loading the entire collection into memory at once. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Jackcess now requires a Java 8+ runtime. As part of this update, all dependencies have been updated to their latest versions. | jahlborn |
![]() |
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. | jahlborn |
![]() |
Add support for Path. Existing File based APIs now have parallel versions which utilize Path. | jahlborn |
![]() |
The Apache commons-lang dependency has been replaced with commons-lang3. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Fix parsing of escaped double quotes in expressions. | jahlborn |
![]() |
Use column label from ResultSetMetaData when importing. Fixes 152. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Fix length in units calculation for Access 97 text fields. Fixes 151. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
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 adpated from the Apache POI and UCanAccess projects (which are both under the Apache License 2.0). | jahlborn |
![]() |
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. | jahlborn |
![]() |
Ignore column validators for read-only dbs. This will avoid irrelevant failures when reading databases which have invalid column properties. Fixes 150. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Implement support for optional expression evaluation. When enabled, expressions will be evaluated for default values, calculated fields, field validators, and record validators. | jahlborn |
![]() |
Default values will now be respected when expression evaluation is enabled (currently disabled by default). Fixes 31. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Add some additional property keys and relevant enums for values. | jahlborn |
![]() |
Create new usage map correctly when adding an index to an existing table. Fixes 147. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Expose the "ddl" attribute on properties. Set the attribute appropriately for known builtin properties. Fixes 145. | jahlborn |
![]() |
Set ddl flag even if property type is explicitly provided. Fixes 146. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Add full support for access 2016 databases including the new "Large Number" (aka Bigint) data type. Fixes 37. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Handle more advanced query join constructs. Fixes 141. | jahlborn |
![]() |
Fix writing of property maps without any properties. Fixes 144. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Fix parsing of certain internal-use queries (such as those used as the data source for the fields in a form). Fixes 142. | jahlborn |
![]() |
Add option to specify relationship name, thanks to Gord Thompson. Fixes 4. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
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. | jahlborn |
![]() |
Cover the GENERIC_JET4 format in unit tests, thanks to Gord Thompson. Fixes 2. | jahlborn |
![]() |
Allow inserting negative auto number fields, thanks to Gord Thompson. Fixes 3. | jahlborn |
![]() |
Add CustomLinkResolver which facilitates loading linked tables from files which are not access databases. Fixes 36. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
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). Fixes 34. | jahlborn |
![]() |
Add support for global usage maps which are reference type maps. Fixes 138. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Change multi-value complex columns so that they return all relevant column properties. | jahlborn |
![]() |
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). | jahlborn |
![]() |
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). | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Fix missing column names in AppendQuery SQL strings. Fixes 131. | jahlborn |
![]() |
Add Database.getTableMetaData method to enable getting basic info about a Table (by name) without actually loading it. Fixes 33. | jahlborn |
![]() |
Allow null values in foreign key fields when enforcing referential integrity. Fixes 136. | jahlborn |
![]() |
Add support for cascade null on delete relationships. | jahlborn |
![]() |
Add support for the required flag for an index. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Throw a prettier exception when maxing out the row size during row creation. Fixes 127. | jahlborn |
![]() |
Add FileFormat.GENERIC_JET4 in order to support getting the file format for jet4 databases with no AccessVersion property (e.g. those created programmatically using ADOX). Fixes 129. | jahlborn |
![]() |
Add some utility methods (DatabaseBuilder.createDateFormat and DatabaseBuilder.toCompatibleCalendar) for handling Dates in an Access compatible manner. Fixes 128. | jahlborn |
![]() |
New site style! | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Handle reading null calculated values. Fixes 125. | jahlborn |
![]() |
Fix handling of dateTimes before the access epoch. Fixes 126. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Load linked table info from system table when reading databases with unsupported sort orders. Fixes 123. | jahlborn |
![]() |
Allow optional direct insert/update of autonumber values. This is disabled by default, but can be selectively enabled per-jvm (using system property), per-database, and per-table. Fixes 32. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
OpenHMS relicenses to Apache License, 2.0! | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Make ColumnBuilder.setMaxLength do the right thing regardless of column type. Fixes 116. | jahlborn |
![]() |
Handle input String boolean values. | jahlborn |
![]() |
Added Database.isLinkedTable method to identify if the given Table is linked to the database. Fixes 28. | jahlborn |
![]() |
Added TableIterableBuilder for advanced Table iteration. This allows selectively including different table types when iterating the tables in a Database. Fixes 28. | jahlborn |
![]() |
Lowered the log level for certain warnings related to system tables which do not generally affect jackcess functionality. Fixes 29. | jahlborn |
![]() |
Added contextual information to many errors and warnings. Fixes 29. | jahlborn |
![]() |
Implement support for indexes on BINARY fields. Fixes 29. | jahlborn |
![]() |
Remove useless warning for fixed length columns lengths with longer length. Cleanup some other stuff related to copying existing columns in ColumnBuilder. Fixes 120. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Add newer sql type to access type mappings if the jvm supports them. Fixes 113. | jahlborn |
![]() |
Fix table name quoting for append and make table queries. Fixes 17. | jahlborn |
![]() |
Don't double quote already quoted identifiers. Fixes 18. | jahlborn |
![]() |
Better validation of identifier names (disallow invalid characters according to Access naming rules). | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Unicode compression support was not correct for all possibly compressed characters. Fixes 111. | jahlborn |
![]() |
Currency columns will now return an accurate scale and precision. Fixes 112. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
IndexCursor can early exit when searching based on indexed values. Fixes 109. | jahlborn |
![]() |
Fix regression where empty memo values are returned as null. Fixes 110. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Add Cursor.findRow(RowId) for moving to a specific Table row using only the RowId. | jahlborn |
![]() |
Add support for reading and writing calculated column values. Jackcess will not evaluate the actual expressions, but the column values can be written directly. Fixes 105. | jahlborn |
![]() |
Add the ability to set properties in DatabaseBuilder, TableBuilder, and ColumnBuilder. | jahlborn |
![]() |
Add the ability to create tables with calculated fields. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Add ColumnValidator interface which allows column values to be easily manipulated/validated as they are written into the database. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Fix NullPointerException in RowImpl.toString() when value is null. Fixes 100. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Rework row add/update so that constraint violations do not leave behind partially written rows. Fixes 99. | jahlborn |
![]() |
Add ConstraintViolationException to distinguish exceptions due to violating database constraints from other random errors. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Add initial support for creating/parsing ole content. | jahlborn |
![]() |
Ignore invalid column usage map definitions. Fixes 97. | jahlborn |
![]() |
Make reading long value columns more lenient (MEMO/OLE). | jahlborn |
![]() |
Add support for modifying PropertyMaps. Fixes 16. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Brand new API! This release is not backwards compatible with 1.x releases. See Migration Guide at https://jackcess.sourceforge.io/jackcess-2.html for more details. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Ignore invalid column usage map definitions. Fixes 97. | jahlborn |
![]() |
Make reading long value columns more lenient (MEMO/OLE). | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Fix reading of Properties with multiple value blocks. Fixes 96. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Remove extra object flags before checking query type. Fixes 25. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Implement handling of usagemaps for long value (MEMO/OLE) columns. Fixes 95. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Fix partial page updates when using CodecHandlers which can only do full page encoding. | jahlborn |
![]() |
Add more methods to Database for retrieving Relationships. | jahlborn |
![]() |
Implement attachment decoding, thanks to Lorenzo Carrara. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Do not unicode compress strings which are longer than 1024 chars. Fixes 94. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Add info to the Column to support MEMO columns which are HYPERLINKS. | jahlborn |
![]() |
Add optional support for enforcing foreign-key constraints/cascading. This is disabled by default (for backwards compatibility), but can be controlled globally via a system property and/or on a per-Database basis using setEnforceForeignKeys() method. Fixes 22. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Add some more functionality to Joiner to facilitate integrity enforcement (hasRows and deleteRows). | jahlborn |
![]() |
Added DatabaseBuilder for more convenient and flexible Database open/create. | jahlborn |
![]() |
Added the MemFileChannel (and associated support in DatabaseBuilder) to enable working with Database files completely in memory. | jahlborn |
![]() |
Fix some more edge cases in date/time conversions. Fixes 92. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Add osgi header information to the manifest. Fixes 3523179. | jahlborn |
![]() |
Add ImportUtil.toColumns to enable more advanced Table creation implementations. Fixes 3523181. | jahlborn |
![]() |
Fix NPE when running unit tests with db format MSISAM. Fixes 3529534. | jahlborn |
![]() |
Fix writing partial pages when CodecHandler is in use. Note, this fix involves a backwards incompatible change to the CodecHandler interface (Jackcess Encrypt 1.0.3 or later is compatible with this version of Jackcess). Fixes 3532250. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Add initial support for linked tables. Linked tables will now be loaded by the normal Database.getTable method. Linked tables can be created using the new Database.createLinkedTable method. Linked table resolution can be customized per Database by supplying a custom LinkResolver. Fixes 3479560. | jahlborn |
![]() |
Rename and refactor the Cursor find methods to improve usability. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Add support for reading/writing complex column data (version history, attachments, multi-value columns). Fixes 3358272. | jahlborn |
![]() |
Fix problem with creating tables with indexes where ms access could not open the created table. | jahlborn |
![]() |
Fix problem with reading row from table with deleted/added columns. Fixes 3435774. | jahlborn |
![]() |
Reuse previously written memo/ole values when updating other values in a row in order to reduce unnecessary data duplication. | jahlborn |
![]() |
Allow ImportFilter and ExportFilter to return null from filterRow() to indicate that a row should be skipped. | jahlborn |
![]() |
Add option to import file without headers to existing table. | jahlborn |
![]() |
Add ImportUtil.Builder and ExportUtil.Builder to simplify import/export operations. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Try multiple classloaders when loading resources as streams. | jahlborn |
![]() |
Add the Joiner utility and some new methods to IndexCursor to make it easier to join tables using pre-defined (index backed) relationships. | jahlborn |
![]() |
Enable basic handling of unsupported data types as binary content. | jahlborn |
![]() |
Add methods to approximate table size. | jahlborn |
![]() |
Add Database.getSystemTableNames to enable retrieving the list of system/hidden tables. | jahlborn |
![]() |
Fix issue with reading Access 97 database with large number of fields. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Refactor table loading to use indexes. Do not load all table names at database startup (should make startup faster). | jahlborn |
![]() |
Add support for reading properties blobs. Add methods for accessing database, summary, and user-defined properties from the Database. Add methods to Table and Column for accessing their respective properties. | jahlborn |
![]() |
Add support for Access 2010, including new "General" sort order (support for super-long text index entries still needs work). | jahlborn |
![]() |
Access expects a row to be at least big enough to hold all fixed values, even if they are null. Fixes 3287626. | jahlborn |
![]() |
Add Index.getReferencedIndex for retrieving the referenced Index for a foreign key index. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Add support for writing all fixed length column types into variable length fields. Fixes 3181334. | jahlborn |
![]() |
More fixes related to reading and interpreting index information. Handle multiple logical indexes backed by the same index data. Interpret foreign key constraint information. Fixes 3192058. | jahlborn |
![]() |
Allow MSISAM files to be written (experimental). | jahlborn |
![]() |
Add support for creating indexes when creating a new table. Normal indexes and primary key indexes are currently supported. Foreign key indexes are not yet supported. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Add support for specifying a quote character on import from flat files. | jahlborn |
![]() |
Add support for reading database password. | jahlborn |
![]() |
Add support for plugging in implementations of various page encoding/decoding algorithms. See the <a href="https://jackcessencrypt.sourceforge.io/">Jackcess Encrypt</a> project for a CodecProvider implementation which supports a few of the Access encodings. (thanks to Vladimir Berezniker). Fixes 3065010. | jahlborn |
![]() |
Implement some tweaks which allow jackcess to be used on the Android platform. See the <a href="faq.html#android">FAQ</a> for more details. (thanks to Miha Pirnat). Fixes 3101578. | jahlborn |
![]() |
Allow output column order in tables to be configured. Fixes 3097387. | jahlborn |
![]() |
Add support for custom column value matching when finding rows using a Cursor. Fixes 3105829. | jahlborn |
![]() |
Ignore usagemap inconsistencies in certain (safe) situations. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Add ExportUtil and associated utilities for exporting tables to flat files (thanks to F. Gerbig). Fixes 3005272. | jahlborn |
![]() |
Fix some places where table/columns names were not being handled case-insensitively. Fixes 3011084. | jahlborn |
![]() |
Make Database.escapeIdentifier public; add methods to TableBuilder and ColumnBuilder to optionally escape names. Fixes 3029500. | jahlborn |
![]() |
Add support for overriding charset and timezone used when reading/writing database. Fixes 2997751. | jahlborn |
![]() |
Add support for reading Access 97 (jet format 3) databases (thanks to F. Gerbig). Fixes 3003375. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Add support for access 2002/2003/2007 databases. Fixes 1451628. | bhamail |
![]() |
Enable "large" index support by default. It can still be disabled via a variety of means, see the Database javadoc for more details. | jahlborn |
![]() |
Fix BigIndexTest to work in IDE's w/out sys.prop. Fixes 2968957. | bhamail |
| Type | Changes | By |
|---|---|---|
![]() |
Further improvements to date handling. Fixes 2899605. | jahlborn |
![]() |
Handle more binary/character input types (Blob, Clob, InputStream, Reader), based on user submitted patch. | jahlborn |
![]() |
Refactor import/copy methods from Database into ImportUtil. Allow reuse of existing tables. make behavior/naming of copy and import methods consistent. (ideas from submitted patch). | jahlborn |
![]() |
Set overflow info in header row, not in last data row. Fixes 2919216. | jahlborn |
![]() |
Add support for indexing strings containing any characters from BMP 0. Fixes 2920092. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Add support for updating GUID indexes and for auto-number GUID fields. Fixes 2884599. | jahlborn |
![]() |
Add support for updating rows in a table. Fixes 2802845. | jahlborn |
![]() |
Support reading/writing fixed length text fields. Fixes 2886370. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Add Query reading support. | jahlborn |
![]() |
Be more forgiving for input column length. Fixes 2788029. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Add ErrorHandler utility for customizing error handling during row parsing. | jahlborn |
![]() |
Add RowFilter contributed by Patricia Donaldson. | jahlborn |
![]() |
Add Database.getSystemTable method for accessing system tables. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Fix simple index handling of tail index pages. Fixes 2043499. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Reserve minimum space for memo/ole fields so that greedy inline row usage does not cause spurious write failures for wide tables. Fixes 2019244. | jahlborn |
![]() |
Better column type translation for very large MEMO/OLE types in the Database.copyTable logic. Fixes 2018713. | jahlborn |
![]() |
Add some more limit checking into table creation based on what access supports (max rows per table, max identifier lengths). Fixes 2019244. | jahlborn |
![]() |
Share out-of-line long value pages in order to generate more compact database files. Fixes 2019244. | jahlborn |
![]() |
Add primitive support for writing unicode compressed text columns. | jahlborn |
![]() |
Add compression code for possible future use; add compression unit tests. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Fix writing of large memo/ole fields. Apparently Access does not like long value fields longer than 4076 bytes. Fixes 1998225. | jahlborn |
![]() |
Reduce maximum row size to what Access considers valid. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Need to store auto-number values back into row so that indexes can be updated correctly. Fixes 1924705. | jahlborn |
![]() |
Access seems to limit data pages to a max of 255 rows. Fixes 1942330. | jahlborn |
![]() |
Added experimental support for "large" indexes. The current support is optional. It can be enabled via a variety of means, see the Database javadoc for more details. Fixes 1564870. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
More fixes for index parsing. Believe index names are now correctly matched up with indexes. Fixes 1913775. | jahlborn |
![]() |
Simplify comparison algorithms for RowId and Index.Entry using type attributes. | jahlborn |
![]() |
Expand the characters supported in index updates to all of the ISO-8859-1 character set. Fixes 1906160. | jahlborn |
![]() |
Fix bug caused by sign extension when reading single-byte row numbers. | jahlborn |
![]() |
Modify Index update support so that it honors the "unique" and "ignoreNulls" properties for the Index. | jahlborn |
![]() |
Add support for reading table relationships. | jahlborn |
![]() |
Fix creation of tables with auto-number columns. | jahlborn |
![]() |
Completely fix problems with sporadic usage map corruption. Fixes 1832723. | jahlborn |
![]() |
Add some soft buffer caching in various places to avoid excessive buffer reallocation. | jahlborn |
![]() |
Add some builder-style utilities for table creation (ColumnBuilder, TableBuilder). | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Resolve more edge cases around date handling. | jahlborn |
![]() |
Fix writing of large memo/ole fields. Apparently Access does not like "inline" fields longer than 64 bytes. Fixes 1899076. | jahlborn |
![]() |
Fix generation of security access control entries. Use userIds already existing in the database file instead of hard-coded userIds, if possible. Fixes 1898793. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Support reading inline usage maps with more than 512 pages. | jahlborn |
![]() |
Fix some problems with sporadic usage map corruption. Fixes 1832723. | jahlborn |
![]() |
Move from cvs to subversion. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Add index based table traversal support to Cursor with optional sub-range narrowing. Add position save/restore, row find, and a variety of other features. | jahlborn |
![]() |
Move table iteration out of Table and into Cursor. First stage in offering more complicated table access. | jahlborn |
![]() |
Update table row count correctly on row deletion or bulk row addition, bug #1681954. Fixes 1681954. | jahlborn |
![]() |
Add experimental support for auto-number columns, feature request #1565216. Fixes 1565216. | jahlborn |
![]() |
Move project to maven2 and change project groupId to com.healthmarketscience.jackcess. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Add support for writing large table definitions, bug #1675522. Fixes 1675522. | jahlborn |
![]() |
Fix handling of usage maps for large tables, bug #1748827. Fixes 1748827. | jahlborn |
![]() |
Fixed some edge cases for reading numeric columns, bug #1672071. Fixes 1672071. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Additional info in DataType to support better type validation (scale/precision range). Add "unit size" concept. | jahlborn |
![]() |
Add CLOB support in JDBC handling. Add general support for large types (BLOB/CLOB). | jahlborn |
![]() |
Enhance Database.copyTable/importReader to allow for better control over column definitions and row values through the ImportFilter. Change default type translation to handle large and variable length types better. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Refactored DataType class, cleaned up a lot of "custom" data type code springled throughout the codebase. | jahlborn |
![]() |
Added sanity checking on table creation (check column/table properties for validity). | jahlborn |
![]() |
Clean up index reading/writing of text columns, add support for more characters | jahlborn |
![]() |
Support reading 'compressed' indexes (fix 1563654). Fixes 1563654. | jahlborn |
![]() |
Implement "overflow" row reading. | jahlborn |
![]() |
Allow multi-page long value reading. | jahlborn |
![]() |
Implement multi-page long value writing. | jahlborn |
![]() |
Fix decimal data type writing. | jahlborn |
![]() |
Add support for opening files read-only (fix 1545857). Fixes 1545857. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Handle more tables with more index slots than actual indexes (fix bug 1530312). Fixes 1530312. | jahlborn |
![]() |
Clean up reading/writing 3-byte ints; long value length is 3-bytes (fix bug 1449812). Fixes 1449812. | jahlborn |
![]() |
Fix handling of skipped rows | jahlborn |
![]() |
When reading multi-page table def, flip buffer before parsing (fix bug 1306970). Fixes 1306970. | jahlborn |
![]() |
Treat table names as case insensitive; use stored table names when instantiating tables | jahlborn |
![]() |
Make Database and Table Iterable | jahlborn |
![]() |
Use uppercase names when adding text columns to indexes, which fixes long standing problem with table names starting with lowercase characters (and other situations where tables could not be opened in Access). Remove hack which forced every table name to have uppercase first character. | jahlborn |
![]() |
Clean up compressed text handling. | jahlborn |
![]() |
Implement reading multi-page long binary values | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Add support for currency columns (thanks to James Schopp). | jahlborn |
![]() |
Handle tables with no variable length columns correctly. | jahlborn |
![]() |
Handle reading with deleted columns. | jahlborn |
![]() |
Read information on primary keys and include in Index. | jahlborn |
![]() |
Fix some issues around reading indexes. | jahlborn |
![]() |
Add write support for numeric/GUID columns. | jahlborn |
![]() |
Added getRowCount(), getName(), updated toString() on Table. | javajedi |
| Type | Changes | By |
|---|---|---|
![]() |
Missing break in switch condition. | jahlborn |
![]() |
Fixes to reading/writing MEMO/OLE columns. | jahlborn |
![]() |
Made exceptions thrown when opening empty or nonexistent files more specific. | jahlborn |
![]() |
Apply patch from Jon Iles for handilng variable length columns. | jahlborn |
![]() |
Apply patch from Jon Iles for handling dates. | jahlborn |
![]() |
Apply patch from Jon Iles for reading GUIDs. | jahlborn |
| Type | Changes | By |
|---|---|---|
![]() |
Fix parsing of NUMERIC type. | jahlborn |
![]() |
Applied Jon Iles' patch to allow large table definitions to be read. | javajedi |
| Type | Changes | By |
|---|---|---|
![]() |
Fixed bug where writing null values into fixed-width columns was failing. Fixes 1273712. | javajedi |
| Type | Changes | By |
|---|---|---|
![]() |
Fixed bug in reading index count from table definition. Skip overflow rows. Fixes 1261536. | javajedi |
| Type | Changes | By |
|---|---|---|
![]() |
JDK 1.5 upgrades | javajedi |
![]() |
Applied Mitchell Friedman's patch for support of additional JDBC data types. | javajedi |
![]() |
Added support for deleted rows. | javajedi |
| Type | Changes | By |
|---|---|---|
![]() |
Initial release | javajedi |