Release notes
Tim McCune
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.
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.
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.
Add Index.getReferencedIndex for retrieving the referenced Index for a
foreign key index.
Add support for writing all fixed length column types into variable
length fields.
More fixes related to reading and interpreting index information.
Handle multiple logical indexes backed by the same index data.
Interpret foreign key constraint information.
Allow MSISAM files to be written (experimental).
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.
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 <a href="http://jackcessencrypt.sourceforge.net/">Jackcess Encrypt</a>
project for a CodecProvider implementation which supports a few of the
Access encodings. (thanks to Vladimir Berezniker).
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).
Allow output column order in tables to be configured.
Add support for custom column value matching when finding rows using a
Cursor.
Ignore usagemap inconsistencies in certain (safe) situations.
Add ExportUtil and associated utilities for exporting tables to flat
files (thanks to F. Gerbig).
Fix some places where table/columns names were not being handled
case-insensitively.
Make Database.escapeIdentifier public; add methods to TableBuilder and
ColumnBuilder to optionally escape names.
Add support for overriding charset and tiemzone used when
reading/writing database.
Add support for reading Access 97 (jet format 3) databases (thanks to
F. Gerbig).
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.
Further improvements to date handling.
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).
Set overflow info in header row, not in last data row.
Add support for indexing strings containing any characters from BMP 0.
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.
Add Query reading support.
Be more forgiving for input column length.
Add ErrorHandler utility for customizing error handling during row
parsing.
Add RowFilter contributed by Patricia Donaldson.
Add Database.getSystemTable method for accessing system tables.
Fix simple index handling of tail index pages.
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.
Fix writing of large memo/ole fields. Apparently Access does not like
long value fields longer than 4076 bytes.
Reduce maximum row size to what Access considers valid.
Need to store auto-number values back into row so that indexes can be
updated correctly.
Access seems to limit data pages to a max of 255 rows.
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.
More fixes for index parsing. Believe index names are now correctly
matched up with indexes.
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.
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.
Add some soft buffer caching in various places to avoid excessive
buffer reallocation.
Add some builder-style utilities for table creation (ColumnBuilder,
TableBuilder).
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.
Support reading inline usage maps with more than 512 pages.
Fix some problems with sporadic usage map corruption.
Move from cvs to subversion.
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.
Move table iteration out of Table and into Cursor. First stage in
offering more complicated table access.
Update table row count correctly on row deletion or bulk row addition,
bug #1681954.
Add experimental support for auto-number columns, feature request
#1565216.
Move project to maven2 and change project groupId to
com.healthmarketscience.jackcess.
Add support for writing large table definitions, bug #1675522.
Fix handling of usage maps for large tables, bug #1748827.
Fixed some edge cases for reading numeric columns, bug #1672071.
Additional info in DataType to support better type validation
(scale/precision range). Add "unit size" concept.
Add CLOB support in JDBC handling. Add general support for large
types (BLOB/CLOB).
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.
Refactored DataType class, cleaned up a lot of "custom" data type code
springled throughout the codebase.
Added sanity checking on table creation (check column/table properties
for validity).
Clean up index reading/writing of text columns, add support for more
characters
Support reading 'compressed' indexes (fix 1563654)
Implement "overflow" row reading.
Allow multi-page long value reading.
Implement multi-page long value writing.
Fix decimal data type writing.
Add support for opening files read-only (fix 1545857)
Handle more tables with more index slots than actual indexes (fix bug
1530312)
Clean up reading/writing 3-byte ints; long value length is 3-bytes
(fix bug 1449812)
Fix handling of skipped rows
When reading multi-page table def, flip buffer before parsing (fix bug
1306970)
Treat table names as case insensitive; use stored table names when
instantiating tables
Make Database and Table Iterable
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.
Clean up compressed text handling.
Implement reading multi-page long binary values
Add support for currency columns (thanks to James Schopp).
Handle tables with no variable length columns correctly.
Handle reading with deleted columns.
Read information on primary keys and include in Index.
Fix some issues around reading indexes.
Add write support for numeric/GUID columns.
Added getRowCount(), getName(), updated toString() on Table.
Missing break in switch condition.
Fixes
to reading/writing MEMO/OLE columns.
Made exceptions thrown when opening empty or nonexistent files more
specific.
Apply patch from Jon Iles for handilng variable length columns.
Apply patch from Jon Iles for handling dates.
Apply patch from Jon Iles for reading GUIDs.
Fix parsing of NUMERIC type.
Applied Jon Iles' patch to allow large table definitions to be read.
Fixed bug where writing null values into fixed-width columns was
failing.
Fixed bug in reading index count from table definition. Skip overflow
rows.
JDK 1.5 upgrades
Applied Mitchell Friedman's patch for support of additional JDBC data
types.
Added support for deleted rows.
Initial release