You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

changes.xml 47KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072
  1. <document>
  2. <properties>
  3. <title>Release notes</title>
  4. <author email="javajedi@users.sf.net">Tim McCune</author>
  5. </properties>
  6. <body>
  7. <release version="4.0.4" date="2022-10-29">
  8. <action dev="jahlborn" type="update">
  9. Update parent pom to fix release process.
  10. </action>
  11. </release>
  12. <release version="4.0.3" date="2022-10-29">
  13. <action dev="jahlborn" type="fix" system="SourceForge2" issue="156">
  14. Fix edge case which can cause table to be considered corrupt.
  15. </action>
  16. </release>
  17. <release version="4.0.2" date="2022-08-26">
  18. <action dev="jahlborn" type="update">
  19. Add Table methods to get the creation and last modified dates.
  20. </action>
  21. <action dev="jahlborn" type="update" issue="45">
  22. Add support for linked odbc tables. TableMetaData provides access to
  23. connection string and local TableDefinition if available.
  24. </action>
  25. </release>
  26. <release version="4.0.1" date="2021-06-21">
  27. <action dev="jahlborn" type="fix">
  28. Ignore trailing spaces when creating text index entries.
  29. </action>
  30. <action dev="jahlborn" type="update">
  31. Add basic support for access 2019+ dbs.
  32. </action>
  33. <action dev="jahlborn" type="update">
  34. Add support for extended date/time type in access 2019+ dbs.
  35. </action>
  36. </release>
  37. <release version="4.0.0" date="2021-01-20">
  38. <action dev="jahlborn" type="update">
  39. Add Automatic-Module-Name in order to make Jackcess safe to use in the
  40. module path in Java 9+ environments.
  41. </action>
  42. <action dev="jahlborn" type="update">
  43. Make a few classes and constants public in order to facilitate use in
  44. different packages.
  45. </action>
  46. <action dev="jahlborn" type="update">
  47. Alter access to java.sql classes so that usage is dependent on whether
  48. or not the module is loaded in Java 9+ environments. Tweak a few
  49. methods to no longer throw SQLException.
  50. </action>
  51. </release>
  52. <release version="3.5.1" date="2020-09-10">
  53. <action dev="jahlborn" type="update">
  54. Add more static utility methods to DatabaseBuilder to enable more
  55. succinct object construction code using static imports.
  56. </action>
  57. </release>
  58. <release version="3.5.0" date="2020-07-31">
  59. <action dev="jahlborn" type="update">
  60. Add support for Access 97 general collation order, enabling indexes to
  61. be used with Access 97 dbs.
  62. </action>
  63. <action dev="jahlborn" type="add">
  64. Add Stream support to all interfaces which are Iterable.
  65. </action>
  66. <action dev="jahlborn" type="update">
  67. Enabled expression evaluation by default.
  68. </action>
  69. <action dev="jahlborn" type="update">
  70. Change the default DateTimeType to LOCAL_DATE_TIME.
  71. </action>
  72. <action dev="jahlborn" type="add" system="SourceForge2Features"
  73. issue="43">
  74. Add support for Predicate value patterns in cursor find methods. Add
  75. PatternColumnPredicate for creating Predicate instances which can
  76. match values using various pattern syntaxes.
  77. </action>
  78. </release>
  79. <release version="3.0.1" date="2019-04-13">
  80. <action dev="jahlborn" type="update">
  81. Add ColumnFormatter utility which can apply Column "Format" property
  82. for display of column values.
  83. </action>
  84. <action dev="jahlborn" type="update">
  85. Add Database.newTableMetaDataIterable() which enables iterating
  86. through table names without loading the entire collection into memory
  87. at once.
  88. </action>
  89. </release>
  90. <release version="3.0.0" date="2019-02-08" description="Update to Java 8">
  91. <action dev="jahlborn" type="update">
  92. Jackcess now requires a Java 8+ runtime. As part of this update, all
  93. dependencies have been updated to their latest versions.
  94. </action>
  95. <action dev="jahlborn" type="update">
  96. Add support for Java 8 Temporal types. Date/time fields will now
  97. accept as input most Temporal types (e.g. LocalDate, LocalTime,
  98. LocalDateTime, etc). Additionally, date/time fields can optionally be
  99. changed to output LocalDateTime instead of Date. This behavior is
  100. configurable on a per-Database basis by setting the DateTimeType for
  101. the database. All Date based APIs now have a parallel LocalDateTime
  102. API. Note that only one of those will work depending on how
  103. the Database is configured. The legacy Date support will be the
  104. default initially, but is deprecated and may be removed in the future.
  105. </action>
  106. <action dev="jahlborn" type="update">
  107. Add support for Path. Existing File based APIs now have parallel
  108. versions which utilize Path.
  109. </action>
  110. <action dev="jahlborn" type="update">
  111. The Apache commons-lang dependency has been replaced with
  112. commons-lang3.
  113. </action>
  114. </release>
  115. <release version="2.2.3" date="2019-02-05">
  116. <action dev="jahlborn" type="fix">
  117. Fix parsing of escaped double quotes in expressions.
  118. </action>
  119. <action dev="jahlborn" type="fix" system="SourceForge2" issue="152">
  120. Use column label from ResultSetMetaData when importing.
  121. </action>
  122. </release>
  123. <release version="2.2.2" date="2019-01-05">
  124. <action dev="jahlborn" type="fix" system="SourceForge2" issue="151">
  125. Fix length in units calculation for Access 97 text fields.
  126. </action>
  127. </release>
  128. <release version="2.2.1" date="2018-12-22">
  129. <action dev="jahlborn" type="update">
  130. Implement the majority of the missing standard functions:
  131. FormatCurrency, FormatDateTime, FormatNumber, FormatPercent, Val,
  132. DateAdd, DateDiff, DatePart, MonthName, WeekdayName, DDB, IPmt, PPmt,
  133. Rate, SLN, SYD, Format, Replace, StrConv. (Note that the internal API
  134. for the expr package has changed in an incompatible way. However,
  135. since the API is still experimental, this was deemed acceptable for a
  136. minor version.). Note that many of the financial functions were
  137. copied and adpated from the Apache POI and UCanAccess projects (which
  138. are both under the Apache License 2.0).
  139. </action>
  140. <action dev="jahlborn" type="update">
  141. Implement more type coercion methods for expressions. Add support for
  142. hex/oct integer strings. Add support for number strings with commas.
  143. Add support for coercing numeric String to a date/time value. Add
  144. support for date/time values with implicit (current) year.
  145. </action>
  146. <action dev="jahlborn" type="fix" system="SourceForge2" issue="150">
  147. Ignore column validators for read-only dbs. This will avoid
  148. irrelevant failures when reading databases which have invalid column
  149. properties.
  150. </action>
  151. </release>
  152. <release version="2.2.0" date="2018-09-08"
  153. description="Add support for expression evaluation">
  154. <action dev="jahlborn" type="update">
  155. Implement support for optional expression evaluation. When enabled,
  156. expressions will be evaluated for default values, calculated fields,
  157. field validators, and record validators.
  158. </action>
  159. <action dev="jahlborn" type="update" system="SourceForge2Features"
  160. issue="31">
  161. Default values will now be respected when expression evaluation is
  162. enabled (currently disabled by default).
  163. </action>
  164. </release>
  165. <release version="2.1.12" date="2018-06-25">
  166. <action dev="jahlborn" type="update">
  167. Add some additional property keys and relevant enums for values.
  168. </action>
  169. <action dev="jahlborn" type="fix" system="SourceForge2" issue="147">
  170. Create new usage map correctly when adding an index to an existing
  171. table.
  172. </action>
  173. </release>
  174. <release version="2.1.11" date="2018-03-04">
  175. <action dev="jahlborn" type="fix" system="SourceForge2" issue="145">
  176. Expose the "ddl" attribute on properties. Set the attribute
  177. appropriately for known builtin properties.
  178. </action>
  179. <action dev="jahlborn" type="fix" system="SourceForge2" issue="146">
  180. Set ddl flag even if property type is explicitly provided.
  181. </action>
  182. </release>
  183. <release version="2.1.10" date="2018-01-18">
  184. <action dev="jahlborn" type="update" system="SourceForge2Features"
  185. issue="37">
  186. Add full support for access 2016 databases including the new "Large
  187. Number" (aka Bigint) data type.
  188. </action>
  189. </release>
  190. <release version="2.1.9" date="2017-10-09">
  191. <action dev="jahlborn" type="fix" system="SourceForge2" issue="141">
  192. Handle more advanced query join constructs.
  193. </action>
  194. <action dev="jahlborn" type="fix" system="SourceForge2" issue="144">
  195. Fix writing of property maps without any properties.
  196. </action>
  197. </release>
  198. <release version="2.1.8" date="2017-06-25">
  199. <action dev="jahlborn" type="fix" system="SourceForge2" issue="142">
  200. Fix parsing of certain internal-use queries (such as those used as the
  201. data source for the fields in a form).
  202. </action>
  203. <action dev="jahlborn" type="update" system="GitHubPullRequests"
  204. issue="4">
  205. Add option to specify relationship name, thanks to Gord Thompson.
  206. </action>
  207. </release>
  208. <release version="2.1.7" date="2017-05-17">
  209. <action dev="jahlborn" type="update">
  210. Implement support for partial index lookups. Efficient IndexCursor
  211. lookups can now be done with multi-column indexes using only some of
  212. the columns in the index.
  213. </action>
  214. <action dev="jahlborn" type="update" system="GitHubPullRequests"
  215. issue="2">
  216. Cover the GENERIC_JET4 format in unit tests, thanks to Gord Thompson.
  217. </action>
  218. <action dev="jahlborn" type="update" system="GitHubPullRequests"
  219. issue="3">
  220. Allow inserting negative auto number fields, thanks to Gord Thompson.
  221. </action>
  222. <action dev="jahlborn" type="update" system="SourceForge2Features"
  223. issue="36">
  224. Add CustomLinkResolver which facilitates loading linked tables from
  225. files which are not access databases.
  226. </action>
  227. </release>
  228. <release version="2.1.6" date="2016-11-29">
  229. <action dev="jahlborn" type="update" system="SourceForge2Features"
  230. issue="34">
  231. When opening a database for a format which is read-only, automatically
  232. open the channel as read-only (instead of throwing an exception if
  233. readOnly is false).
  234. </action>
  235. <action dev="jahlborn" type="fix" system="SourceForge2" issue="138">
  236. Add support for global usage maps which are reference type maps.
  237. </action>
  238. </release>
  239. <release version="2.1.5" date="2016-10-03">
  240. <action dev="jahlborn" type="update">
  241. Change multi-value complex columns so that they return all relevant
  242. column properties.
  243. </action>
  244. <action dev="jahlborn" type="update">
  245. Add some initial support for Table metadata modification. Columns and
  246. Indexes can now be added to an existing table (using
  247. ColumnBuilder.addToTable and IndexBuilder.addToTable respectively).
  248. </action>
  249. <action dev="jahlborn" type="update">
  250. Add the ability to create Relationships using RelationshipBuilder.
  251. With this support finally brings the ability to create foreign key
  252. indexes (aka integrity enforcement in Relationships).
  253. </action>
  254. </release>
  255. <release version="2.1.4" date="2016-05-18">
  256. <action dev="jahlborn" type="fix" system="SourceForge2" issue="131">
  257. Fix missing column names in AppendQuery SQL strings.
  258. </action>
  259. <action dev="jahlborn" type="update" system="SourceForge2Features"
  260. issue="33">
  261. Add Database.getTableMetaData method to enable getting basic info
  262. about a Table (by name) without actually loading it.
  263. </action>
  264. <action dev="jahlborn" type="fix" system="SourceForge2" issue="136">
  265. Allow null values in foreign key fields when enforcing referential
  266. integrity.
  267. </action>
  268. <action dev="jahlborn" type="update">
  269. Add support for cascade null on delete relationships.
  270. </action>
  271. <action dev="jahlborn" type="update">
  272. Add support for the required flag for an index.
  273. </action>
  274. </release>
  275. <release version="2.1.3" date="2015-12-04">
  276. <action dev="jahlborn" type="fix" system="SourceForge2" issue="127">
  277. Throw a prettier exception when maxing out the row size during row
  278. creation.
  279. </action>
  280. <action dev="jahlborn" type="fix" system="SourceForge2" issue="129">
  281. Add FileFormat.GENERIC_JET4 in order to support getting the file
  282. format for jet4 databases with no AccessVersion property (e.g. those
  283. created programmatically using ADOX).
  284. </action>
  285. <action dev="jahlborn" type="update" system="SourceForge2" issue="128">
  286. Add some utility methods (DatabaseBuilder.createDateFormat and
  287. DatabaseBuilder.toCompatibleCalendar) for handling Dates in an Access
  288. compatible manner.
  289. </action>
  290. <action dev="jahlborn" type="update">
  291. New site style!
  292. </action>
  293. </release>
  294. <release version="2.1.2" date="2015-06-22">
  295. <action dev="jahlborn" type="fix" system="SourceForge2" issue="125">
  296. Handle reading null calculated values.
  297. </action>
  298. <action dev="jahlborn" type="fix" system="SourceForge2" issue="126">
  299. Fix handling of dateTimes before the access epoch.
  300. </action>
  301. </release>
  302. <release version="2.1.1" date="2015-05-14">
  303. <action dev="jahlborn" type="fix" system="SourceForge2" issue="123">
  304. Load linked table info from system table when reading databases with
  305. unsupported sort orders.
  306. </action>
  307. <action dev="jahlborn" type="update" system="SourceForge2Features"
  308. issue="32">
  309. Allow optional direct insert/update of autonumber values. This is
  310. disabled by default, but can be selectively enabled per-jvm (using
  311. system property), per-database, and per-table.
  312. </action>
  313. </release>
  314. <release version="2.1.0" date="2015-04-16"
  315. description="Relicense to Apache License">
  316. <action dev="jahlborn" type="add">
  317. OpenHMS relicenses to Apache License, 2.0!
  318. </action>
  319. </release>
  320. <release version="2.0.9" date="2015-03-21">
  321. <action dev="jahlborn" type="fix" system="SourceForge2" issue="116">
  322. Make ColumnBuilder.setMaxLength do the right thing regardless of
  323. column type.
  324. </action>
  325. <action dev="jahlborn" type="update">
  326. Handle input String boolean values.
  327. </action>
  328. <action dev="jahlborn" type="add" system="SourceForge2Features" issue="28">
  329. Added Database.isLinkedTable method to identify if the given Table is
  330. linked to the database.
  331. </action>
  332. <action dev="jahlborn" type="add" system="SourceForge2Features" issue="28">
  333. Added TableIterableBuilder for advanced Table iteration. This allows
  334. selectively including different table types when iterating the tables
  335. in a Database.
  336. </action>
  337. <action dev="jahlborn" type="add" system="SourceForge2Features" issue="29">
  338. Lowered the log level for certain warnings related to system tables
  339. which do not generally affect jackcess functionality.
  340. </action>
  341. <action dev="jahlborn" type="add" system="SourceForge2Features" issue="29">
  342. Added contextual information to many errors and warnings.
  343. </action>
  344. <action dev="jahlborn" type="add" system="SourceForge2Features" issue="29">
  345. Implement support for indexes on BINARY fields.
  346. </action>
  347. <action dev="jahlborn" type="fix" system="SourceForge2" issue="120">
  348. Remove useless warning for fixed length columns lengths with longer
  349. length. Cleanup some other stuff related to copying existing columns
  350. in ColumnBuilder.
  351. </action>
  352. </release>
  353. <release version="2.0.8" date="2014-12-26">
  354. <action dev="jahlborn" type="fix" system="SourceForge2" issue="113">
  355. Add newer sql type to access type mappings if the jvm supports them.
  356. </action>
  357. <action dev="jahlborn" type="fix" system="SourceForge2Patches" issue="17">
  358. Fix table name quoting for append and make table queries.
  359. </action>
  360. <action dev="jahlborn" type="fix" system="SourceForge2Patches" issue="18">
  361. Don't double quote already quoted identifiers.
  362. </action>
  363. <action dev="jahlborn" type="update">
  364. Better validation of identifier names (disallow invalid characters
  365. according to Access naming rules).
  366. </action>
  367. </release>
  368. <release version="2.0.7" date="2014-11-22">
  369. <action dev="jahlborn" type="fix" system="SourceForge2" issue="111">
  370. Unicode compression support was not correct for all possibly
  371. compressed characters.
  372. </action>
  373. <action dev="jahlborn" type="fix" system="SourceForge2" issue="112">
  374. Currency columns will now return an accurate scale and precision.
  375. </action>
  376. </release>
  377. <release version="2.0.6" date="2014-10-04">
  378. <action dev="jahlborn" type="fix" system="SourceForge2" issue="109">
  379. IndexCursor can early exit when searching based on indexed values.
  380. </action>
  381. <action dev="jahlborn" type="fix" system="SourceForge2" issue="110">
  382. Fix regression where empty memo values are returned as null.
  383. </action>
  384. </release>
  385. <release version="2.0.5" date="2014-09-17">
  386. <action dev="jahlborn" type="add">
  387. Add Cursor.findRow(RowId) for moving to a specific Table row using
  388. only the RowId.
  389. </action>
  390. <action dev="jahlborn" type="fix" system="SourceForge2" issue="105">
  391. Add support for reading and writing calculated column values.
  392. Jackcess will not evaluate the actual expressions, but the column
  393. values can be written directly.
  394. </action>
  395. <action dev="jahlborn" type="add">
  396. Add the ability to set properties in DatabaseBuilder, TableBuilder,
  397. and ColumnBuilder.
  398. </action>
  399. <action dev="jahlborn" type="add">
  400. Add the ability to create tables with calculated fields.
  401. </action>
  402. </release>
  403. <release version="2.0.4" date="2014-04-05">
  404. <action dev="jahlborn" type="add">
  405. Add ColumnValidator interface which allows column values to be easily
  406. manipulated/validated as they are written into the database.
  407. </action>
  408. </release>
  409. <release version="2.0.3" date="2014-01-30">
  410. <action dev="jahlborn" type="fix" system="SourceForge2" issue="100">
  411. Fix NullPointerException in RowImpl.toString() when value is null.
  412. </action>
  413. </release>
  414. <release version="2.0.2" date="2013-11-30">
  415. <action dev="jahlborn" type="fix" system="SourceForge2" issue="99">
  416. Rework row add/update so that constraint violations do not leave
  417. behind partially written rows.
  418. </action>
  419. <action dev="jahlborn" type="update">
  420. Add ConstraintViolationException to distinguish exceptions due to
  421. violating database constraints from other random errors.
  422. </action>
  423. </release>
  424. <release version="2.0.1" date="2013-10-13">
  425. <action dev="jahlborn" type="add">
  426. Add initial support for creating/parsing ole content.
  427. </action>
  428. <action dev="jahlborn" type="fix" system="SourceForge2" issue="97">
  429. Ignore invalid column usage map definitions.
  430. </action>
  431. <action dev="jahlborn" type="fix">
  432. Make reading long value columns more lenient (MEMO/OLE).
  433. </action>
  434. <action dev="jahlborn" type="add" system="SourceForge2Features"
  435. issue="16">
  436. Add support for modifying PropertyMaps.
  437. </action>
  438. </release>
  439. <release version="2.0.0" date="2013-08-26"
  440. description="Major API Revision">
  441. <action dev="jahlborn" type="update">
  442. Brand new API! This release is not backwards compatible with 1.x
  443. releases. See Migration Guide at https://jackcess.sourceforge.io/jackcess-2.html
  444. for more details.
  445. </action>
  446. </release>
  447. <release version="1.2.14.3" date="2013-10-13">
  448. <action dev="jahlborn" type="fix" system="SourceForge2" issue="97">
  449. Ignore invalid column usage map definitions.
  450. </action>
  451. <action dev="jahlborn" type="fix">
  452. Make reading long value columns more lenient (MEMO/OLE).
  453. </action>
  454. </release>
  455. <release version="1.2.14.2" date="2013-08-25">
  456. <action dev="jahlborn" type="fix" system="SourceForge2" issue="96">
  457. Fix reading of Properties with multiple value blocks.
  458. </action>
  459. </release>
  460. <release version="1.2.14.1" date="2013-08-11">
  461. <action dev="jahlborn" type="fix" system="SourceForge2Features"
  462. issue="25">
  463. Remove extra object flags before checking query type.
  464. </action>
  465. </release>
  466. <release version="1.2.14" date="2013-07-23">
  467. <action dev="jahlborn" type="fix" system="SourceForge2" issue="95">
  468. Implement handling of usagemaps for long value (MEMO/OLE) columns.
  469. </action>
  470. </release>
  471. <release version="1.2.13" date="2013-06-18">
  472. <action dev="jahlborn" type="fix">
  473. Fix partial page updates when using CodecHandlers which can only do
  474. full page encoding.
  475. </action>
  476. <action dev="jahlborn" type="update">
  477. Add more methods to Database for retrieving Relationships.
  478. </action>
  479. <action dev="jahlborn" type="update">
  480. Implement attachment decoding, thanks to Lorenzo Carrara.
  481. </action>
  482. </release>
  483. <release version="1.2.12" date="2013-05-09">
  484. <action dev="jahlborn" type="fix" system="SourceForge2" issue="94">
  485. Do not unicode compress strings which are longer than 1024 chars.
  486. </action>
  487. </release>
  488. <release version="1.2.10" date="2013-02-18">
  489. <action dev="jahlborn" type="update">
  490. Add info to the Column to support MEMO columns which are HYPERLINKS.
  491. </action>
  492. <action dev="jahlborn" type="fix" system="SourceForge2" issue="22">
  493. Add optional support for enforcing foreign-key constraints/cascading.
  494. This is disabled by default (for backwards compatibility), but can be
  495. controlled globally via a system property and/or on a per-Database
  496. basis using setEnforceForeignKeys() method.
  497. </action>
  498. </release>
  499. <release version="1.2.9" date="2012-10-15">
  500. <action dev="jahlborn" type="update">
  501. Add some more functionality to Joiner to facilitate integrity
  502. enforcement (hasRows and deleteRows).
  503. </action>
  504. <action dev="jahlborn" type="add">
  505. Added DatabaseBuilder for more convenient and flexible Database
  506. open/create.
  507. </action>
  508. <action dev="jahlborn" type="add">
  509. Added the MemFileChannel (and associated support in DatabaseBuilder)
  510. to enable working with Database files completely in memory.
  511. </action>
  512. <action dev="jahlborn" type="fix" system="SourceForge2" issue="92">
  513. Fix some more edge cases in date/time conversions.
  514. </action>
  515. </release>
  516. <release version="1.2.8" date="2012-07-10">
  517. <action dev="jahlborn" type="update" system="SourceForge" issue="3523179">
  518. Add osgi header information to the manifest.
  519. </action>
  520. <action dev="jahlborn" type="update" system="SourceForge" issue="3523181">
  521. Add ImportUtil.toColumns to enable more advanced Table creation
  522. implementations.
  523. </action>
  524. <action dev="jahlborn" type="fix" system="SourceForge" issue="3529534">
  525. Fix NPE when running unit tests with db format MSISAM.
  526. </action>
  527. <action dev="jahlborn" type="fix" system="SourceForge" issue="3532250">
  528. Fix writing partial pages when CodecHandler is in use. Note, this fix
  529. involves a backwards incompatible change to the CodecHandler interface
  530. (Jackcess Encrypt 1.0.3 or later is compatible with this version of
  531. Jackcess).
  532. </action>
  533. </release>
  534. <release version="1.2.7" date="2012-04-02">
  535. <action dev="jahlborn" type="update" system="SourceForge" issue="3479560">
  536. Add initial support for linked tables. Linked tables will now be
  537. loaded by the normal Database.getTable method. Linked tables can be
  538. created using the new Database.createLinkedTable method. Linked table
  539. resolution can be customized per Database by supplying a custom
  540. LinkResolver.
  541. </action>
  542. <action dev="jahlborn" type="update">
  543. Rename and refactor the Cursor find methods to improve usability.
  544. </action>
  545. </release>
  546. <release version="1.2.6" date="2011-12-16">
  547. <action dev="jahlborn" type="update" system="SourceForge" issue="3358272">
  548. Add support for reading/writing complex column data (version history,
  549. attachments, multi-value columns).
  550. </action>
  551. <action dev="jahlborn" type="fix">
  552. Fix problem with creating tables with indexes where ms access could
  553. not open the created table.
  554. </action>
  555. <action dev="jahlborn" type="fix" system="SourceForge" issue="3435774">
  556. Fix problem with reading row from table with deleted/added columns.
  557. </action>
  558. <action dev="jahlborn" type="update">
  559. Reuse previously written memo/ole values when updating other values in
  560. a row in order to reduce unnecessary data duplication.
  561. </action>
  562. <action dev="jahlborn" type="update">
  563. Allow ImportFilter and ExportFilter to return null from filterRow() to
  564. indicate that a row should be skipped.
  565. </action>
  566. <action dev="jahlborn" type="update">
  567. Add option to import file without headers to existing table.
  568. </action>
  569. <action dev="jahlborn" type="add">
  570. Add ImportUtil.Builder and ExportUtil.Builder to simplify
  571. import/export operations.
  572. </action>
  573. </release>
  574. <release version="1.2.5" date="2011-10-19">
  575. <action dev="jahlborn" type="update">
  576. Try multiple classloaders when loading resources as streams.
  577. </action>
  578. <action dev="jahlborn" type="add">
  579. Add the Joiner utility and some new methods to IndexCursor to make it
  580. easier to join tables using pre-defined (index backed) relationships.
  581. </action>
  582. <action dev="jahlborn" type="update">
  583. Enable basic handling of unsupported data types as binary content.
  584. </action>
  585. <action dev="jahlborn" type="update">
  586. Add methods to approximate table size.
  587. </action>
  588. <action dev="jahlborn" type="update">
  589. Add Database.getSystemTableNames to enable retrieving the list of
  590. system/hidden tables.
  591. </action>
  592. <action dev="jahlborn" type="fix">
  593. Fix issue with reading Access 97 database with large number of fields.
  594. </action>
  595. </release>
  596. <release version="1.2.4" date="2011-05-14">
  597. <action dev="jahlborn" type="update">
  598. Refactor table loading to use indexes. Do not load all table names at
  599. database startup (should make startup faster).
  600. </action>
  601. <action dev="jahlborn" type="add">
  602. Add support for reading properties blobs. Add methods for accessing
  603. database, summary, and user-defined properties from the Database. Add
  604. methods to Table and Column for accessing their respective properties.
  605. </action>
  606. <action dev="jahlborn" type="add">
  607. Add support for Access 2010, including new "General" sort order
  608. (support for super-long text index entries still needs work).
  609. </action>
  610. <action dev="jahlborn" type="fix" system="SourceForge" issue="3287626">
  611. Access expects a row to be at least big enough to hold all fixed
  612. values, even if they are null.
  613. </action>
  614. <action dev="jahlborn" type="update">
  615. Add Index.getReferencedIndex for retrieving the referenced Index for a
  616. foreign key index.
  617. </action>
  618. </release>
  619. <release version="1.2.3" date="2011-03-05">
  620. <action dev="jahlborn" type="fix" system="SourceForge" issue="3181334">
  621. Add support for writing all fixed length column types into variable
  622. length fields.
  623. </action>
  624. <action dev="jahlborn" type="fix" system="SourceForge" issue="3192058">
  625. More fixes related to reading and interpreting index information.
  626. Handle multiple logical indexes backed by the same index data.
  627. Interpret foreign key constraint information.
  628. </action>
  629. <action dev="jahlborn" type="update">
  630. Allow MSISAM files to be written (experimental).
  631. </action>
  632. <action dev="jahlborn" type="add">
  633. Add support for creating indexes when creating a new table. Normal
  634. indexes and primary key indexes are currently supported. Foreign key
  635. indexes are not yet supported.
  636. </action>
  637. </release>
  638. <release version="1.2.2" date="2010-11-29">
  639. <action dev="jahlborn" type="update">
  640. Add support for specifying a quote character on import from flat
  641. files.
  642. </action>
  643. <action dev="jahlborn" type="update">
  644. Add support for reading database password.
  645. </action>
  646. <action dev="jahlborn" type="update" system="SourceForge" issue="3065010">
  647. Add support for plugging in implementations of various page
  648. encoding/decoding algorithms. See the &lt;a href="https://jackcessencrypt.sourceforge.io/"&gt;Jackcess Encrypt&lt;/a&gt;
  649. project for a CodecProvider implementation which supports a few of the
  650. Access encodings. (thanks to Vladimir Berezniker).
  651. </action>
  652. <action dev="jahlborn" type="update" system="SourceForge" issue="3101578">
  653. Implement some tweaks which allow jackcess to be used on the Android
  654. platform. See the &lt;a href="faq.html#android"&gt;FAQ&lt;/a&gt; for more
  655. details. (thanks to Miha Pirnat).
  656. </action>
  657. <action dev="jahlborn" type="update" system="SourceForge" issue="3097387">
  658. Allow output column order in tables to be configured.
  659. </action>
  660. <action dev="jahlborn" type="update" system="SourceForge" issue="3105829">
  661. Add support for custom column value matching when finding rows using a
  662. Cursor.
  663. </action>
  664. <action dev="jahlborn" type="fix">
  665. Ignore usagemap inconsistencies in certain (safe) situations.
  666. </action>
  667. </release>
  668. <release version="1.2.1" date="2010-08-01">
  669. <action dev="jahlborn" type="add" system="SourceForge" issue="3005272">
  670. Add ExportUtil and associated utilities for exporting tables to flat
  671. files (thanks to F. Gerbig).
  672. </action>
  673. <action dev="jahlborn" type="fix" system="SourceForge" issue="3011084">
  674. Fix some places where table/columns names were not being handled
  675. case-insensitively.
  676. </action>
  677. <action dev="jahlborn" type="fix" system="SourceForge" issue="3029500">
  678. Make Database.escapeIdentifier public; add methods to TableBuilder and
  679. ColumnBuilder to optionally escape names.
  680. </action>
  681. <action dev="jahlborn" type="update" system="SourceForge" issue="2997751">
  682. Add support for overriding charset and timezone used when
  683. reading/writing database.
  684. </action>
  685. <action dev="jahlborn" type="add" system="SourceForge" issue="3003375">
  686. Add support for reading Access 97 (jet format 3) databases (thanks to
  687. F. Gerbig).
  688. </action>
  689. </release>
  690. <release version="1.2.0" date="2010-04-18">
  691. <action dev="bhamail" type="update" system="SourceForge" issue="1451628">
  692. Add support for access 2002/2003/2007 databases.
  693. </action>
  694. <action dev="jahlborn" type="update">
  695. Enable "large" index support by default. It can still be disabled via
  696. a variety of means, see the Database javadoc for more details.
  697. </action>
  698. <action dev="bhamail" type="fix" system="SourceForge" issue="2968957">
  699. Fix BigIndexTest to work in IDE's w/out sys.prop.
  700. </action>
  701. </release>
  702. <release version="1.1.21" date="2010-01-19">
  703. <action dev="jahlborn" type="fix" system="SourceForge" issue="2899605">
  704. Further improvements to date handling.
  705. </action>
  706. <action dev="jahlborn" type="update">
  707. Handle more binary/character input types (Blob, Clob, InputStream,
  708. Reader), based on user submitted patch.
  709. </action>
  710. <action dev="jahlborn" type="update">
  711. Refactor import/copy methods from Database into ImportUtil. Allow
  712. reuse of existing tables. make behavior/naming of copy and import
  713. methods consistent. (ideas from submitted patch).
  714. </action>
  715. <action dev="jahlborn" type="fix" system="SourceForge" issue="2919216">
  716. Set overflow info in header row, not in last data row.
  717. </action>
  718. <action dev="jahlborn" type="fix" system="SourceForge" issue="2920092">
  719. Add support for indexing strings containing any characters from BMP 0.
  720. </action>
  721. </release>
  722. <release version="1.1.20" date="2009-11-18">
  723. <action dev="jahlborn" type="fix" system="SourceForge" issue="2884599">
  724. Add support for updating GUID indexes and for auto-number GUID
  725. fields.
  726. </action>
  727. <action dev="jahlborn" type="update" system="SourceForge" issue="2802845">
  728. Add support for updating rows in a table.
  729. </action>
  730. <action dev="jahlborn" type="fix" system="SourceForge" issue="2886370">
  731. Support reading/writing fixed length text fields.
  732. </action>
  733. </release>
  734. <release version="1.1.19" date="2009-06-13">
  735. <action dev="jahlborn" type="add">
  736. Add Query reading support.
  737. </action>
  738. <action dev="jahlborn" type="fix" system="SourceForge" issue="2788029">
  739. Be more forgiving for input column length.
  740. </action>
  741. </release>
  742. <release version="1.1.18" date="2008-11-08">
  743. <action dev="jahlborn" type="add">
  744. Add ErrorHandler utility for customizing error handling during row
  745. parsing.
  746. </action>
  747. <action dev="jahlborn" type="add">
  748. Add RowFilter contributed by Patricia Donaldson.
  749. </action>
  750. <action dev="jahlborn" type="update">
  751. Add Database.getSystemTable method for accessing system tables.
  752. </action>
  753. </release>
  754. <release version="1.1.17" date="2008-09-23">
  755. <action dev="jahlborn" type="fix" system="SourceForge" issue="2043499">
  756. Fix simple index handling of tail index pages.
  757. </action>
  758. </release>
  759. <release version="1.1.16" date="2008-07-24">
  760. <action dev="jahlborn" type="fix" system="SourceForge" issue="2019244">
  761. Reserve minimum space for memo/ole fields so that greedy inline row
  762. usage does not cause spurious write failures for wide tables.
  763. </action>
  764. <action dev="jahlborn" type="fix" system="SourceForge" issue="2018713">
  765. Better column type translation for very large MEMO/OLE types in the
  766. Database.copyTable logic.
  767. </action>
  768. <action dev="jahlborn" type="fix" system="SourceForge" issue="2019244">
  769. Add some more limit checking into table creation based on what access
  770. supports (max rows per table, max identifier lengths).
  771. </action>
  772. <action dev="jahlborn" type="fix" system="SourceForge" issue="2019244">
  773. Share out-of-line long value pages in order to generate more compact
  774. database files.
  775. </action>
  776. <action dev="jahlborn" type="add">
  777. Add primitive support for writing unicode compressed text columns.
  778. </action>
  779. <action dev="jahlborn" type="add">
  780. Add compression code for possible future use; add compression unit
  781. tests.
  782. </action>
  783. </release>
  784. <release version="1.1.15" date="2008-06-27">
  785. <action dev="jahlborn" type="fix" system="SourceForge" issue="1998225">
  786. Fix writing of large memo/ole fields. Apparently Access does not like
  787. long value fields longer than 4076 bytes.
  788. </action>
  789. <action dev="jahlborn" type="fix">
  790. Reduce maximum row size to what Access considers valid.
  791. </action>
  792. </release>
  793. <release version="1.1.14" date="2008-04-29">
  794. <action dev="jahlborn" type="fix" system="SourceForge" issue="1924705">
  795. Need to store auto-number values back into row so that indexes can be
  796. updated correctly.
  797. </action>
  798. <action dev="jahlborn" type="fix" system="SourceForge" issue="1942330">
  799. Access seems to limit data pages to a max of 255 rows.
  800. </action>
  801. <action dev="jahlborn" type="fix" system="SourceForge" issue="1564870">
  802. Added experimental support for "large" indexes. The current support
  803. is optional. It can be enabled via a variety of means, see the
  804. Database javadoc for more details.
  805. </action>
  806. </release>
  807. <release version="1.1.13" date="2008-03-21">
  808. <action dev="jahlborn" type="fix" system="SourceForge" issue="1913775">
  809. More fixes for index parsing. Believe index names are now correctly
  810. matched up with indexes.
  811. </action>
  812. <action dev="jahlborn" type="update">
  813. Simplify comparison algorithms for RowId and Index.Entry using type
  814. attributes.
  815. </action>
  816. <action dev="jahlborn" type="fix" system="SourceForge" issue="1906160">
  817. Expand the characters supported in index updates to all of the
  818. ISO-8859-1 character set.
  819. </action>
  820. <action dev="jahlborn" type="fix">
  821. Fix bug caused by sign extension when reading single-byte row numbers.
  822. </action>
  823. <action dev="jahlborn" type="update">
  824. Modify Index update support so that it honors the "unique" and
  825. "ignoreNulls" properties for the Index.
  826. </action>
  827. <action dev="jahlborn" type="update">
  828. Add support for reading table relationships.
  829. </action>
  830. <action dev="jahlborn" type="fix">
  831. Fix creation of tables with auto-number columns.
  832. </action>
  833. <action dev="jahlborn" type="fix" system="SourceForge" issue="1832723">
  834. Completely fix problems with sporadic usage map corruption.
  835. </action>
  836. <action dev="jahlborn" type="update">
  837. Add some soft buffer caching in various places to avoid excessive
  838. buffer reallocation.
  839. </action>
  840. <action dev="jahlborn" type="add">
  841. Add some builder-style utilities for table creation (ColumnBuilder,
  842. TableBuilder).
  843. </action>
  844. </release>
  845. <release version="1.1.12" date="2008-02-27">
  846. <action dev="jahlborn" type="fix">
  847. Resolve more edge cases around date handling.
  848. </action>
  849. <action dev="jahlborn" type="fix" system="SourceForge" issue="1899076">
  850. Fix writing of large memo/ole fields. Apparently Access does not like
  851. "inline" fields longer than 64 bytes.
  852. </action>
  853. <action dev="jahlborn" type="fix" system="SourceForge" issue="1898793">
  854. Fix generation of security access control entries. Use userIds
  855. already existing in the database file instead of hard-coded userIds,
  856. if possible.
  857. </action>
  858. </release>
  859. <release version="1.1.11" date="2008-01-20">
  860. <action dev="jahlborn" type="fix">
  861. Support reading inline usage maps with more than 512 pages.
  862. </action>
  863. <action dev="jahlborn" type="fix" system="SourceForge" issue="1832723">
  864. Fix some problems with sporadic usage map corruption.
  865. </action>
  866. <action dev="jahlborn" type="update">
  867. Move from cvs to subversion.
  868. </action>
  869. </release>
  870. <release version="1.1.10" date="2007-12-26">
  871. <action dev="jahlborn" type="add">
  872. Add index based table traversal support to Cursor with optional
  873. sub-range narrowing. Add position save/restore, row find, and a
  874. variety of other features.
  875. </action>
  876. <action dev="jahlborn" type="add">
  877. Move table iteration out of Table and into Cursor. First stage in
  878. offering more complicated table access.
  879. </action>
  880. <action dev="jahlborn" type="fix" system="SourceForge" issue="1681954">
  881. Update table row count correctly on row deletion or bulk row addition,
  882. bug #1681954.
  883. </action>
  884. <action dev="jahlborn" type="update" system="SourceForge" issue="1565216">
  885. Add experimental support for auto-number columns, feature request
  886. #1565216.
  887. </action>
  888. <action dev="jahlborn" type="update">
  889. Move project to maven2 and change project groupId to
  890. com.healthmarketscience.jackcess.
  891. </action>
  892. </release>
  893. <release version="1.1.9" date="2007-07-12">
  894. <action dev="jahlborn" type="fix" system="SourceForge" issue="1675522">
  895. Add support for writing large table definitions, bug #1675522.
  896. </action>
  897. <action dev="jahlborn" type="fix" system="SourceForge" issue="1748827">
  898. Fix handling of usage maps for large tables, bug #1748827.
  899. </action>
  900. <action dev="jahlborn" type="fix" system="SourceForge" issue="1672071">
  901. Fixed some edge cases for reading numeric columns, bug #1672071.
  902. </action>
  903. </release>
  904. <release version="1.1.8" date="2007-02-13">
  905. <action dev="jahlborn" type="update">
  906. Additional info in DataType to support better type validation
  907. (scale/precision range). Add "unit size" concept.
  908. </action>
  909. <action dev="jahlborn" type="update">
  910. Add CLOB support in JDBC handling. Add general support for large
  911. types (BLOB/CLOB).
  912. </action>
  913. <action dev="jahlborn" type="update">
  914. Enhance Database.copyTable/importReader to allow for better control
  915. over column definitions and row values through the ImportFilter.
  916. Change default type translation to handle large and variable length
  917. types better.
  918. </action>
  919. </release>
  920. <release version="1.1.7" date="2006-10-02">
  921. <action dev="jahlborn" type="update">
  922. Refactored DataType class, cleaned up a lot of "custom" data type code
  923. springled throughout the codebase.
  924. </action>
  925. <action dev="jahlborn" type="update">
  926. Added sanity checking on table creation (check column/table properties
  927. for validity).
  928. </action>
  929. <action dev="jahlborn" type="update">
  930. Clean up index reading/writing of text columns, add support for more
  931. characters
  932. </action>
  933. <action dev="jahlborn" type="update" system="SourceForge" issue="1563654">
  934. Support reading 'compressed' indexes (fix 1563654)
  935. </action>
  936. <action dev="jahlborn" type="update">
  937. Implement "overflow" row reading.
  938. </action>
  939. <action dev="jahlborn" type="fix">
  940. Allow multi-page long value reading.
  941. </action>
  942. <action dev="jahlborn" type="update">
  943. Implement multi-page long value writing.
  944. </action>
  945. <action dev="jahlborn" type="fix">
  946. Fix decimal data type writing.
  947. </action>
  948. <action dev="jahlborn" type="update" system="SourceForge" issue="1545857">
  949. Add support for opening files read-only (fix 1545857)
  950. </action>
  951. </release>
  952. <release version="1.1.6" date="2006-08-07">
  953. <action dev="jahlborn" type="fix" system="SourceForge" issue="1530312">
  954. Handle more tables with more index slots than actual indexes (fix bug
  955. 1530312)
  956. </action>
  957. <action dev="jahlborn" type="fix" system="SourceForge" issue="1449812">
  958. Clean up reading/writing 3-byte ints; long value length is 3-bytes
  959. (fix bug 1449812)
  960. </action>
  961. <action dev="jahlborn" type="fix">
  962. Fix handling of skipped rows
  963. </action>
  964. <action dev="jahlborn" type="fix" system="SourceForge" issue="1306970">
  965. When reading multi-page table def, flip buffer before parsing (fix bug
  966. 1306970)
  967. </action>
  968. <action dev="jahlborn" type="update">
  969. Treat table names as case insensitive; use stored table names when
  970. instantiating tables
  971. </action>
  972. <action dev="jahlborn" type="update">
  973. Make Database and Table Iterable
  974. </action>
  975. <action dev="jahlborn" type="fix">
  976. Use uppercase names when adding text columns to indexes, which fixes
  977. long standing problem with table names starting with lowercase
  978. characters (and other situations where tables could not be opened in
  979. Access). Remove hack which forced every table name to have uppercase
  980. first character.
  981. </action>
  982. <action dev="jahlborn" type="update">
  983. Clean up compressed text handling.
  984. </action>
  985. <action dev="jahlborn" type="update">
  986. Implement reading multi-page long binary values
  987. </action>
  988. </release>
  989. <release version="1.1.5" date="2006-07-25">
  990. <action dev="jahlborn" type="update">
  991. Add support for currency columns (thanks to James Schopp).
  992. </action>
  993. <action dev="jahlborn" type="fix">
  994. Handle tables with no variable length columns correctly.
  995. </action>
  996. <action dev="jahlborn" type="fix">
  997. Handle reading with deleted columns.
  998. </action>
  999. <action dev="jahlborn" type="update">
  1000. Read information on primary keys and include in Index.
  1001. </action>
  1002. <action dev="jahlborn" type="fix">
  1003. Fix some issues around reading indexes.
  1004. </action>
  1005. <action dev="jahlborn" type="update">
  1006. Add write support for numeric/GUID columns.
  1007. </action>
  1008. <action dev="javajedi" type="update">
  1009. Added getRowCount(), getName(), updated toString() on Table.
  1010. </action>
  1011. </release>
  1012. <release version="1.1.4" date="2006-6-15">
  1013. <action dev="jahlborn" type="fix">
  1014. Missing break in switch condition.
  1015. </action>
  1016. <action dev="jahlborn" type="fix">
  1017. Fixes
  1018. to reading/writing MEMO/OLE columns.
  1019. </action>
  1020. <action dev="jahlborn" type="update">
  1021. Made exceptions thrown when opening empty or nonexistent files more
  1022. specific.
  1023. </action>
  1024. <action dev="jahlborn" type="fix">
  1025. Apply patch from Jon Iles for handilng variable length columns.
  1026. </action>
  1027. <action dev="jahlborn" type="fix">
  1028. Apply patch from Jon Iles for handling dates.
  1029. </action>
  1030. <action dev="jahlborn" type="fix">
  1031. Apply patch from Jon Iles for reading GUIDs.
  1032. </action>
  1033. </release>
  1034. <release version="1.1.3" date="2006-2-16">
  1035. <action dev="jahlborn" type="fix">
  1036. Fix parsing of NUMERIC type.
  1037. </action>
  1038. <action dev="javajedi" type="fix">
  1039. Applied Jon Iles' patch to allow large table definitions to be read.
  1040. </action>
  1041. </release>
  1042. <release version="1.1.2" date="2005-8-26">
  1043. <action dev="javajedi" type="fix" system="SourceForge" issue="1273712">
  1044. Fixed bug where writing null values into fixed-width columns was
  1045. failing.
  1046. </action>
  1047. </release>
  1048. <release version="1.1.1" date="2005-8-20">
  1049. <action dev="javajedi" type="fix" system="SourceForge" issue="1261536">
  1050. Fixed bug in reading index count from table definition. Skip overflow
  1051. rows.
  1052. </action>
  1053. </release>
  1054. <release version="1.1" date="2005-8-12">
  1055. <action dev="javajedi" type="update">
  1056. JDK 1.5 upgrades
  1057. </action>
  1058. <action dev="javajedi" type="update">
  1059. Applied Mitchell Friedman's patch for support of additional JDBC data
  1060. types.
  1061. </action>
  1062. <action dev="javajedi" type="update">
  1063. Added support for deleted rows.
  1064. </action>
  1065. </release>
  1066. <release version="1.0" date="2005-4-7">
  1067. <action dev="javajedi" type="add">
  1068. Initial release
  1069. </action>
  1070. </release>
  1071. </body>
  1072. </document>