Browse Source

minor updates and refactors

git-svn-id: https://svn.code.sf.net/p/jackcess/code/jackcess/trunk@812 f203690c-595d-4dc9-a70b-905162fa7fd2
tags/jackcess-2.0.1
James Ahlborn 10 years ago
parent
commit
97eadc5acd

+ 0
- 10
TODO.txt View File

@@ -6,8 +6,6 @@ Missing pieces:
* MEDIUM
- implement table creation w/ complex columns
* MEDIUM
- implement (optional) foreign key enforcement
* MEDIUM
- implement write support for properties
* EASY
- implement table, column, index renaming
@@ -26,15 +24,7 @@ Refactor goals:
- clean up javadocs
- enhance public api classes
* add @usage tags to util classes
* change CodecHandler usage to handle not-inline decoding
- pass filename to CodecHandler, enable pwd callbacks CallbackHandler
- pass custom context to CodecHandler?
- rework CryptCodecProvider to have custom
javax.security.auth.callback.CallbackHandler which is only invoked if
password is definitely required.
- implement page buffering in PageChannel
* need to implement logical flushing in update code (startUpdate/finishUpdate)
- refactor free-space handlers Table/Column?
- implement "lazy" usage maps (load on first usage)?
- implement some OLE support
- add typed getter methods to Row

+ 1
- 1
src/main/java/com/healthmarketscience/jackcess/impl/ColumnImpl.java View File

@@ -2170,7 +2170,7 @@ public class ColumnImpl implements Column, Comparable<ColumnImpl> {
if(TableImpl.rowFitsOnDataPage(dataLength, lvalPage, getFormat())) {
// the current page has space
return lvalPage;
}
}
}

// need new page

+ 17
- 16
src/main/java/com/healthmarketscience/jackcess/impl/TableImpl.java View File

@@ -1792,28 +1792,29 @@ public class TableImpl implements Table
TempPageHolder rowBufferH)
throws IOException
{
// find last data page (Not bothering to check other pages for free
// space.)
// find last data page (Not bothering to check other pages for free
// space.)
UsageMap.PageCursor revPageCursor = ownedPages.cursor();
revPageCursor.afterLast();
while(true) {
int tmpPageNumber = revPageCursor.getPreviousPage();
if(tmpPageNumber < 0) {
break;
}
revPageCursor.afterLast();
while(true) {
int tmpPageNumber = revPageCursor.getPreviousPage();
if(tmpPageNumber < 0) {
break;
}
// only use if actually listed in free space pages
if(!freeSpacePages.containsPageNumber(tmpPageNumber)) {
continue;
}
ByteBuffer dataPage = rowBufferH.setPage(ownedPages.getPageChannel(),
tmpPageNumber);
if(dataPage.get() == PageTypes.DATA) {
// found last data page, only use if actually listed in free space
// pages
if(freeSpacePages.containsPageNumber(tmpPageNumber)) {
return dataPage;
}
}
if(dataPage.get() == PageTypes.DATA) {
// found last data page with free space
return dataPage;
}
}

return null;
}
}
/**
* Updates the table definition after rows are modified.

+ 1
- 8
src/main/java/com/healthmarketscience/jackcess/impl/UsageMap.java View File

@@ -327,13 +327,6 @@ public class UsageMap
_handler.addOrRemovePageNumber(pageNumber, true, false);
}
/**
* Remove a page number from this usage map
*/
public void removePageNumber(int pageNumber) throws IOException {
removePageNumber(pageNumber, false);
}

/**
* Remove a page number from this usage map
*/
@@ -681,7 +674,7 @@ public class UsageMap
}

// lastly, remove the new page
removePageNumber(newPageNumber);
removePageNumber(newPageNumber, false);
}
}


Loading…
Cancel
Save