Repository navigation
Jackcess 5.0.3 and jackcess-encrypt 5.0.2 - #47
Merged
Merged
Conversation
Jackcess 5.0.2 scans a catalog whose index it can't use (a Greek Access 97 file's, for one) by itself, so the Greek fixtures no longer report CATALOG_INDEX_UNUSABLE, and their conversions exit 0 when nothing else warns. The source layer's fallback stays for a damaged catalog index: DamagedCopy.withCatalogIndexDamaged flips one bit of a table's entry in an English file's catalog index, and CatalogIndexTest checks that the table, or MSysRelationships, is still found by scanning, plain, encoded and with relationships. Those tests fail without the fallback. Jackcess 5.0.3 reads a date with the coarsest rounding that converts back to the stored double, where 5.0.1 rounded to milliseconds: the profile of indexCodes' Table6, which stores odd doubles on purpose, now counts 7 fraction digits. No other date in the corpus or the local samples changes.
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Jackcess 5.0.1 → 5.0.3 and jackcess-encrypt 5.0.0 → 5.0.2. This replaces Dependabot's #42, which bumped Jackcess alone and failed on Access 97 text; #46 fixed that.
What users see
CATALOG_INDEX_UNUSABLE.gr97: exits 0 instead of 1.inspectis identical: the same tables, relationships, profiles and orphan checks as with 5.0.1.indexCodes'Table6/Table6_desc, which store odd doubles on purpose. Nothing entered in Access changes.Changed tests and goldens
inspectgoldens ofgr97,gr97enc,linkFront97,linkBack97: theCATALOG_INDEX_UNUSABLEline is gone.inspectgoldens ofindexCodesV2000/V2003/V2007/V2010:Table6andTable6_descprofile atfraction-digits 7instead of 3 (the date change above).ConvertCommandTest:linkedTablesAreConvertedFromTheirBackEndWhenAskedToandtheLinkRootBelongsToResolveAndMustBeADirectorynow expect exit 0.verifySaysWhyAMatchingOutputStillExitsWithWarningsneeds a source that warns while it is read. It now uses a copy ofhundred.accdbwith a damaged catalog index, instead ofgr97.LinkedTablesResolvedTest: the check that a back-end's issues are reported under its file name, apart from the same issue of the front-end, now usesCHARSET_OVERRIDDEN(--charset windows-1253), raised for both files.ParentKeys' note on the missed seeks says 5.0.3 fixed the measured case; the guard stays. TheCATALOG_INDEX_UNUSABLErow in the README now describes a damaged catalog index.The catalog fallback
AccessSource's fallback stays: a damaged catalog index still hides tables. The Greek files can't exercise it any more, because Jackcess now always scans their catalog: damaging their index changes nothing.DamagedCopy.withCatalogIndexDamagedflips one bit of an object's key in theParentIdNameindex of an English file's catalog. A lookup of that name then finds nothing, while a scan still reads the row.CatalogIndexTestuses it on:common1V1997.mdbanddelV2003.mdb(plain);db97-enc.mdbanddb-enc.mdb(encoded): flipping an RC4-encoded bit flips the decoded bit, so the fallback must carry the codec provider;schemaFidelity.accdb, withMSysRelationshipshidden: its 6 relationships are all kept.With the fallback disabled, all six of those tests fail, and so does
verifySaysWhy….What they can't cover:
Other Jackcess changes checked
gr97fixtures give the same counts as before.IOException(5.0.2):AccessSourcealready reported both checked and unchecked exceptions as a damaged file. TheDamagedCopydata-page tests and the corrupt-file tests pass unchanged.unsupported collating sort order … Greek for text indexfor Greek Access 97 files. The CLI keeps Jackcess's log quiet, so nothing reaches stderr.Checks
./mvnw verify: 2865 tests, no failures../mvnw verify -Pintegration,local-samples: 2934 unit and 1472 integration tests, no failures. That includes the Greek Access 97 Northwind, Solutions and ORDERS fromsamples/win98.samples/mrs/Extract_MRS_V11.0.03.mdb(352 MB) in-Xmx256m:RELATIONSHIP_MALFORMEDand 39NO_PRIMARY_KEY.