Jackcess Changelog

What's new in Jackcess 2.1.3

Feb 2, 2016
  • Throw a prettier exception when maxing out the row size during row creation
  • 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)
  • Update: Add some utility methods (DatabaseBuilder.createDateFormat and DatabaseBuilder.toCompatibleCalendar) for handling Dates in an Access compatible manner

New in Jackcess 2.1.2 (Feb 2, 2016)

  • Handle reading null calculated values
  • Fix handling of dateTimes before the access epoch

New in Jackcess 2.1.1 (May 18, 2015)

  • OpenHMS relicenses to Apache License, 2.0!

New in Jackcess 2.1.0 (Apr 18, 2015)

  • OpenHMS relicenses to Apache License, 2.0!

New in Jackcess 2.0.9 (Mar 23, 2015)

  • Make ColumnBuilder.setMaxLength do the right thing regardless of column type
  • Handle input String boolean values
  • Added Database.isLinkedTable method to identify if the given Table is linked to the database
  • Added TableIterableBuilder for advanced Table iteration. This allows selectively including different table types when iterating the tables in a Database
  • Lowered the log level for certain warnings related to system tables which do not generally affect jackcess functionality
  • Added contextual information to many errors and warnings
  • Implement support for indexes on BINARY fields
  • Remove useless warning for fixed length columns lengths with longer length. Cleanup some other stuff related to copying existing columns in ColumnBuilder

New in Jackcess 2.0.8 (Dec 29, 2014)

  • Add newer sql type to access type mappings if the jvm supports them.
  • Fix table name quoting for append and make table queries.
  • Don't double quote already quoted identifiers.
  • Better validation of identifier names (disallow invalid characters according to Access naming rules).

New in Jackcess 2.0.7 (Nov 25, 2014)

  • Unicode compression support was not correct for all possibly compressed characters. - Currency columns will now return an accurate scale and precision.

New in Jackcess 2.0.6 (Oct 6, 2014)

  • IndexCursor can early exit when searching based on indexed values.
  • Fix regression where empty memo values are returned as null.

New in Jackcess 2.0.5 (Sep 18, 2014)

  • Add Cursor.findRow(RowId) for moving to a specific Table row using only the RowId.
  • 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.
  • Add the ability to set properties in DatabaseBuilder, TableBuilder, and ColumnBuilder.
  • Add the ability to create tables with calculated fields.

New in Jackcess 2.0.4 (Apr 8, 2014)

  • Add ColumnValidator interface which allows column values to be easily manipulated/validated as they are written into the database.

New in Jackcess 2.0.3 (Feb 1, 2014)

  • Fix NullPointerException in RowImpl.toString() when value is null

New in Jackcess 2.0.2 (Dec 2, 2013)

  • Rework row add/update so that constraint violations do not leave behind partially written rows.
  • Add ConstraintViolationException to distinguish exceptions due to violating database constraints from other random errors.

New in Jackcess 2.0.1 (Oct 14, 2013)

  • Add initial support for creating/parsing ole content.
  • Ignore invalid column usage map definitions.
  • Make reading long value columns more lenient (MEMO/OLE).
  • Add support for modifying PropertyMaps.

New in Jackcess 2.0.0 (Aug 27, 2013)

  • Brand new API.
  • This release is not backwards compatible with 1.x releases.

New in Jackcess 1.2.14.2 (Aug 26, 2013)

  • Fix reading of Properties with multiple value blocks.

New in Jackcess 1.2.14.1 (Aug 13, 2013)

  • Remove extra object flags before checking query type.

New in Jackcess 1.2.14 (Jul 26, 2013)

  • Implement handling of usagemaps for long value (MEMO/OLE) columns.

New in Jackcess 1.2.13 (Jun 20, 2013)

  • Fix partial page updates when using CodecHandlers which can only do full page encoding
  • Add more methods to Database for retrieving Relationships
  • Implement attachment decoding, thanks to Lorenzo Carrara.

New in Jackcess 1.2.12 (May 13, 2013)

  • Do not unicode compress strings which are longer than 1024 chars.

New in Jackcess 1.2.10 (Feb 19, 2013)

  • 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.
  • Add info to the Column to support MEMO columns which are HYPERLINKS.

New in Jackcess 1.2.8 (Jul 11, 2012)

  • Add osgi header information to the manifest. Fixes 3523179.
  • Add ImportUtil.toColumns to enable more advanced Table creation implementations.
  • Fix NPE when running unit tests with db format MSISAM.
  • 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).

New in Jackcess 1.2.7 (Apr 3, 2012)

  • 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.
  • Rename and refactor the Cursor find methods to improve usability.

New in Jackcess 1.2.6 (Dec 17, 2011)

  • Add support for reading/writing complex column data (version history, attachments, multi-value columns).
  • Fix problem with creating tables with indexes where ms access could not open the created table
  • Fix problem with reading row from table with deleted/added columns
  • Reuse previously written memo/ole values when updating other values in a row in order to reduce unnecessary data duplication
  • Allow ImportFilter and ExportFilter to return null from filterRow() to indicate that a row should be skipped
  • Add option to import file without headers to existing table
  • Add ImportUtil.Builder and ExportUtil.Builder to simplify import/export operations

New in Jackcess 1.2.5 (Oct 20, 2011)

  • Try multiple classloaders when loading resources as streams
  • Add the Joiner utility and some new methods to IndexCursor to make it easier to join tables using pre-defined (index backed) relationships
  • Enable basic handling of unsupported data types as binary content.
  • Add methods to approximate table size.
  • Add Database.getSystemTableNames to enable retrieving the list of system/hidden tables.
  • Fix issue with reading Access 97 database with large number of fields.

New in Jackcess 1.2.4 (May 15, 2011)

  • Refactor table loading to use indexes. Do not load all table names at database startup (should make startup faster).
  • 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.
  • Add support for Access 2010, including new "General" sort order (support for super-long text index entries still needs work).
  • Access expects a row to be at least big enough to hold all fixed values, even if they are null. Fixes 3287626.
  • Add Index.getReferencedIndex for retrieving the referenced Index for a foreign key index.

New in Jackcess 1.2.3 (Mar 7, 2011)

  • Add support for writing all fixed length column types into variable length
  • fields. Fixes 3181334
  • 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
  • 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.
  • Allow MSISAM files to be written (experimental).

New in Jackcess 1.2.2 (Nov 30, 2010)

  • Add support for specifying a quote character on import from flat files.
  • Add support for reading database password.
  • Add support for plugging in implementations of various page
  • encoding/decoding algorithms. See the Jackcess Encrypt project
  • (http://jackcessencrypt.sourceforge.net/) for a CodecProvider implementation
  • which supports a few of the Access encodings. (thanks to Vladimir
  • Berezniker). Fixes 3065010.
  • Implement some tweaks which allow jackcess to be used on the Android
  • platform. See the FAQ for more details. (thanks to Miha Pirnat). Fixes
  • 3101578.
  • Allow output column order in tables to be configured. Fixes 3097387.
  • Add support for custom column value matching when finding rows using a
  • Cursor. Fixes 3105829.
  • Ignore usagemap inconsistencies in certain (safe) situations.

New in Jackcess 1.2.1 (Aug 3, 2010)

  • Add ExportUtil and associated utilities for exporting tables to flat files (thanks to F. Gerbig). Fixes 3005272.
  • Fix some places where table/columns names were not being handled case-insensitively. Fixes 3011084.
  • Make Database.escapeIdentifier public; add methods to TableBuilder and ColumnBuilder to optionally escape names. Fixes 3029500.
  • Add support for overriding charset and tiemzone used when reading/writing database. Fixes 2997751.
  • Add support for reading Access 97 (jet format 3) databases (thanks to F. Gerbig). Fixes 3003375.

New in Jackcess 1.2.0 (Apr 19, 2010)

  • Add support for access 2002/2003/2007 databases.
  • Enable "large" index support by default. It can still be disabled via a variety of means, see the Database javadoc for more details.
  • Fix BigIndexTest to work in IDE's w/out sys.prop.

New in Jackcess 1.1.21 (Jan 20, 2010)

  • Add support for indexing strings containing any characters from BMP 0.
  • Set overflow info in header row, not in last data row.
  • Handle more binary/character input types (Blob, Clob, InputStream, Reader), based on user submitted patch.
  • 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).
  • Further improvements to date handling.

New in Jackcess 1.1.20 (Nov 19, 2009)

  • Add support for updating GUID indexes and for auto-number GUID fields.
  • Add support for updating rows in a table.
  • Support reading/writing fixed length text fields.

New in Jackcess 1.1.19 (Jun 16, 2009)

  • Add support for reading MS Access queries
  • Be more forgiving for input column length. Fixes #2788029

New in Jackcess 1.1.18 (Apr 24, 2009)

  • Add ErrorHandler utility for customizing error handling during row parsing.
  • Add RowFilter contributed by Patricia Donaldson.
  • Add Database.getSystemTable method for accessing system tables.

New in Jackcess 1.1.17 (Sep 24, 2008)

  • Fix simple index handling of tail index pages.

New in Jackcess 1.1.16 (Jul 25, 2008)

  • Reserve minimum space for memo/ole fields so that greedy inline row usage does not cause spurious write failures for wide tables.
  • Better column type translation for very large MEMO/OLE types in the Database.copyTable logic.
  • Add some more limit checking into table creation based on what access supports (max rows per table, max identifier lengths).
  • Share out-of-line long value pages in order to generate more compact database files.
  • Add primitive support for writing unicode compressed text columns.
  • Add compression code for possible future use; add compression unit tests.

New in Jackcess 1.1.15 (Jun 28, 2008)

  • Fix writing of large memo/ole fields. Apparently Access does not like long value fields longer than 4076 bytes. Fixes 1998225.
  • Reduce maximum row size to what Access considers valid.

New in Jackcess 1.1.13 (Mar 22, 2008)

  • More fixes for index parsing. Believe index names are now correctly matched up with indexes. Fixes 1913775
  • Simplify comparison algorithms for RowId and Index.Entry using type attributes
  • Expand the characters supported in index updates to all of the ISO-8859-1 character set. Fixes 1906160
  • Fix bug caused by sign extension when reading single-byte row numbers.
  • Modify Index update support so that it honors the "unique" and "ignoreNulls" properties for the Index.
  • Add support for reading table relationships.
  • Fix creation of tables with auto-number columns.
  • Completely fix problems with sporadic usage map corruption. Fixes 1832723
  • Add some soft buffer caching in various places to avoid excessive buffer reallocation.
  • Add some builder-style utilities for table creation (ColumnBuilder, TableBuilder).

New in Jackcess 1.1.12 (Feb 29, 2008)

  • Resolve more edge cases around date handling.
  • Fix writing of large memo/ole fields. Apparently Access does not like "inline" fields longer than 64 bytes.
  • Fix generation of security access control entries. Use userIds already existing in the database file instead of hard-coded userIds, if possible.