append search, use WT_RECNO_OOB instead, UINT64_MAX is a valid record
number, we could theoretically legitimately want to search for it.
Add tests that basic CRUD operations work on the maximum possible record
number.
Fix overflow bugs in the variable-length column-store page-search and
append-list reconciliation.
information is sufficient.
The dangerous code is __col_insert_search(), if it changed what was
returned when not finding an exact match, the upper-level cursor code
is going to break.
Add two big honkin' comments to make sure we don't make dangerous
changes in the future, and remove the flag.
at the same level if the checked record is equal to the searched for
record (can't happen in the current use of this code, but it's the
correct thing to do in a skiplist).
When looking for the next-smaller item (__col_insert_search_lt), the
search still has to be greater-than, reference #1835.
jump past the rest of the deleted records, we have to adjust based on
the starting record of the slot, use the page's repeat array to find
that starting record.
Another run at the __col_insert_search_gt (the greater-than skiplist
search), hopefully it's finally correct.
Change the copyright check script to always use the current year.
Change the example code copyright notices to document them as freeware,
anybody using WiredTiger example code is free to use it in any way they
choose, including commercially, WiredTiger claims no rights in such a
copy.
Minor re-ordering of the standard copyright notice so the preamble is
always the copyright notice itself, not the mention of the LICENSE file.
column-store append/update lists from WT_PAGE into WT_PAGE_MODIFY in
order to shrink WT_PAGE.
--HG--
extra : rebase_source : 6d7df0f5b50351cabfec464eccfa0b49b8b0f35a
__col_insert_search() to __col_insert_search_match(), and rename
__col_insert_search_stack() to __col_insert_search()). Minor cleanups
in those functions to always test if the WT_INSERT_HEAD argument is
NULL.
The column-store insert code didn't catch the fact that there was a
race: if we find the record that's being inserted, then we know another
thread of control must have inserted it, and so we return WT_RESTART.
Found by inspection, we've never run any of this code multi-threaded.
Bug fix in the row-store search code, don't test if the address of
inshead->tail[0] is NULL, test inshead->tail[0] itself.
that's vanishingly unlikely when search a column-store, application's calling
cursor->search_near() with a recno past the end of the file takes that path.
Rather than special case the cursor next/prev code, I made the column search
function match the row seaarch function, that seems cleaner.
--HG--
extra : rebase_source : 36b0d5b31426ae09c1ae68cda3d73a8686a15511
on the last page of the tree.
Replace the col_extend serialization function with a new append function
Pin the last page of the tree in memory so we can access it without
first acquiring a hazard reference. And, don't acquire/release hazard
references on pinned pages.
Don't ever try to evict a pinned page during a sync call.
Change sync to quit trying after 5 attempts -- the page is busy.
Always flush memory before we release a hazard referenced on a page
we've just pinned, make sure the pin hits memory before the hazard
reference is released.
Fix bugs where the row- and column-store code was calling the row_key
serialization function incorrectly, the WT_INSERT field was not
allocated and should not have been freed, also the insert serialization
function had a similar problem. Once this change was made, we no longer
needed to track the sizes of these items.
Change the row- and column-store code to not use per session buffers
for on-page structures, specifically the insert list heads, use normal
allocation memory instead.
Change the test/format code to test insert with fixed-length files,
again.
Create column.i: it's a few routines from cursor.i and the search
routine from col_srch.c.
Remove the btree/col_extend.c file, no longer used.
Remove the column_internal_extend, column_leaf_extend configuration
values, no longer used.
Remove the functions that let the workQ increase the count of pages in
memory, no longer used.
--HG--
rename : src/include/cursor.i => src/include/column.i
extra : rebase_source : ee32aeda7db964def30da0920abe6aaf59ba62a1