April 3rd, 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.
December 17th, 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
October 20th, 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.
May 15th, 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.
March 7th, 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).
November 30th, 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.
August 3rd, 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.
April 19th, 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.
January 20th, 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.
November 19th, 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.
June 16th, 2009· Add support for reading MS Access queries
· Be more forgiving for input column length. Fixes #2788029
April 24th, 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.
September 24th, 2008· Fix simple index handling of tail index pages.
July 25th, 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.
June 28th, 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.
March 22nd, 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).
February 29th, 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.