into mysql.com:/home/my/mysql-maria
BitKeeper/etc/ignore:
auto-union
BUILD/SETUP.sh:
Auto merged
mysql-test/lib/init_db.sql:
Auto merged
mysql-test/lib/mtr_cases.pl:
Auto merged
mysql-test/lib/mtr_diff.pl:
Auto merged
mysql-test/lib/mtr_gcov.pl:
Auto merged
mysql-test/lib/mtr_gprof.pl:
Auto merged
mysql-test/lib/mtr_im.pl:
Auto merged
mysql-test/lib/mtr_io.pl:
Auto merged
mysql-test/lib/mtr_match.pl:
Auto merged
mysql-test/lib/mtr_misc.pl:
Auto merged
mysql-test/lib/mtr_process.pl:
Auto merged
mysql-test/lib/mtr_report.pl:
Auto merged
mysql-test/lib/mtr_stress.pl:
Auto merged
mysql-test/lib/mtr_timer.pl:
Auto merged
mysql-test/lib/mtr_unique.pl:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/t/disabled.def:
Auto merged
mysql-test/t/myisam.test:
Auto merged
mysql-test/t/query_cache_notembedded.test:
Auto merged
sql/filesort.cc:
Auto merged
sql/handler.cc:
Auto merged
sql/slave.cc:
Auto merged
sql/slave.h:
Auto merged
sql/sql_table.cc:
Auto merged
storage/maria/ha_maria.h:
Auto merged
storage/maria/ma_bitmap.c:
Auto merged
storage/maria/ma_blockrec.c:
Auto merged
storage/maria/ma_blockrec.h:
Auto merged
storage/maria/ma_check.c:
Auto merged
storage/maria/ma_checksum.c:
Auto merged
storage/maria/ma_create.c:
Auto merged
storage/maria/ma_delete.c:
Auto merged
storage/maria/ma_delete_all.c:
Auto merged
storage/maria/ma_extra.c:
Auto merged
storage/maria/ma_info.c:
Auto merged
storage/maria/ma_search.c:
Auto merged
storage/maria/ma_test2.c:
Auto merged
storage/maria/ma_write.c:
Auto merged
storage/maria/maria_def.h:
Auto merged
storage/myisam/mi_create.c:
Auto merged
storage/myisam/mi_test2.c:
Auto merged
sql/share/errmsg.txt:
Use remote version
mysql-test/include/varchar.inc:
Manual merge (take changes from remote tree)
storage/maria/ha_maria.cc:
Manual merge
BUILD/SETUP.sh:
Update from 5.1
include/maria.h:
Moved structs into size order
mysql-test/include/varchar.inc:
Fixed error numbers (as in 5.1)
mysql-test/mysql-test-run.pl:
Updated from 5.1
Create a dummy mysql.err file if using --valgrind --debug
mysql-test/lib/init_db.sql:
Update from 5.1
mysql-test/lib/mtr_cases.pl:
Update from 5.1
mysql-test/lib/mtr_diff.pl:
Update from 5.1
mysql-test/lib/mtr_gcov.pl:
Update from 5.1
mysql-test/lib/mtr_gprof.pl:
Update from 5.1
mysql-test/lib/mtr_im.pl:
Update from 5.1
mysql-test/lib/mtr_io.pl:
Update from 5.1
mysql-test/lib/mtr_match.pl:
Update from 5.1
mysql-test/lib/mtr_misc.pl:
Update from 5.1
mysql-test/lib/mtr_process.pl:
Update from 5.1
mysql-test/lib/mtr_report.pl:
Update from 5.1
mysql-test/lib/mtr_stress.pl:
Update from 5.1
mysql-test/lib/mtr_timer.pl:
Update from 5.1
mysql-test/lib/mtr_unique.pl:
Update from 5.1
mysql-test/r/maria.result:
Updated results. The reason for the new results are:
- Maria doesn't support REPAIR TABLE or OPTIMIZE table yet
- Some statistics information is different, so MySQL prefers index reads instead of table scans
- No support for concurrent writes in the default BLOCK_RECORD mode
- No support for different KEY_BLOCK sizes (will not be fixed)
mysql-test/t/disabled.def:
Enable maria test
mysql-test/t/maria.test:
No support for concurrent writes in the default BLOCK_RECORD mode
No support for different KEY_BLOCK sizes (will not be fixed)
mysql-test/t/myisam.test:
Fix to be able to run with --extern
mysql-test/t/query_cache_notembedded.test:
Fix to be able to run with --extern
sql/filesort.cc:
Fixed compiler warning
sql/handler.cc:
Use new error message (as in 5.1)
sql/share/errmsg.txt:
Update error messages (as in 5.1)
sql/slave.cc:
Fixed compiler warning
sql/slave.h:
Fixed compiler warning
sql/sql_table.cc:
Fixed compiler warning
storage/maria/ha_maria.cc:
Added better scan_time()
Disble REPAIR on BLOCK_RECORD tables
Added rnd_end() to free memory after scan
Don't pack numerical primary keys
Don't allow fast alter table if row type changes
storage/maria/ha_maria.h:
Added get_row_type(), scan_time() and rnd_end()
BitKeeper/etc/ignore:
Added storage/maria/unittest/mf_pagecache_consist_1k-t-big storage/maria/unittest/mf_pagecache_consist_1kHC-t-big storage/maria/unittest/mf_pagecache_consist_1kRD-t-big storage/maria/unittest/mf_pagecache_consist_1kWR-t-big storage/maria/unittest/mf_pagecache_consist_64k-t-big storage/maria/unittest/mf_pagecache_consist_64kHC-t-big storage/maria/unittest/mf_pagecache_consist_64kRD-t-big storage/maria/unittest/mf_pagecache_consist_64kWR-t-big storage/maria/unittest/mf_pagecache_single_64k-t-big to the ignore list
storage/maria/ma_bitmap.c:
Fixed some bugs found with maria.test
Added more DBUG_PRINT and some more comments
storage/maria/ma_blockrec.c:
Fixed some bugs found with maria.test
Simplified code
More comments
storage/maria/ma_blockrec.h:
Added DBUG_ASSERT()
storage/maria/ma_check.c:
Don't check record data links with block_records
Update state.changed properly
storage/maria/ma_checksum.c:
Fixed bug in checksum handling (only first field was calculated)
storage/maria/ma_create.c:
Set rec->fill_length properly
Added extra testing needed for BLOCK_RECORD
Fixed bug in unlock of not locked mutex
Fixed memory leak
storage/maria/ma_delete.c:
Update state.changed
storage/maria/ma_delete_all.c:
Update state.changed
storage/maria/ma_extra.c:
Disable caching of rows if we are using BLOCK_RECORD
(scan_init will enable caching of rows when using BLOCK_RECORD)
storage/maria/ma_info.c:
Added data_file_type
storage/maria/ma_search.c:
Fixed bug with signed bytes
storage/maria/ma_test2.c:
Fixed wrong pointer handling (caused crash on 64 bit machines)
storage/maria/ma_write.c:
Added DBUG_ statements
storage/maria/maria_def.h:
Added STATE_NOT_OPTIMIZED_ROWS
storage/myisam/mi_create.c:
Fixed bug with unlocking of not locked mutex (in case of error condition)
storage/myisam/mi_test2.c:
Fixed wrong pointer handling (caused crash on 64 bit machines)
4 bytes, using my_checksum() (the old checksum was one byte and just
a sum of the bytes - that was before I saw we have my_checksum :)
storage/maria/ma_control_file.c:
stronger checksum (4 bytes instead of 1, and using CRC instead of
simple byte sum).
storage/maria/unittest/ma_control_file-t.c:
Checksum is now 4 bytes (total length of control file is now 23),
so LSN and LAST_LOGNO move.
Tests: "maria" and "ps_maria" fail like before merge (assertions),
"ma_test_all" fails like before merge (ma_test2 segfaults, I'll try
to find out why).
mysys/mf_pagecache.c:
using a more distinctive tag
storage/maria/ha_maria.cc:
merge from MyISAM into Maria
storage/maria/ma_check.c:
merge from MyISAM into Maria
storage/maria/ma_close.c:
TODO as a word
storage/maria/ma_create.c:
merge from MyISAM into Maria
storage/maria/ma_delete_all.c:
TODO as a word
storage/maria/ma_delete_table.c:
TODO as a word
storage/maria/ma_dynrec.c:
merge from MyISAM into Maria
storage/maria/ma_extra.c:
merge from MyISAM into Maria
storage/maria/ma_ft_boolean_search.c:
merge from MyISAM into Maria
storage/maria/ma_locking.c:
merge from MyISAM into Maria
storage/maria/ma_loghandler.c:
fix for compiler warning
storage/maria/ma_open.c:
merge from MyISAM into Maria.
I will ask Monty to check the ASKMONTY-marked piece of code.
storage/maria/ma_packrec.c:
merge from MyISAM into Maria
storage/maria/ma_range.c:
merge from MyISAM into Maria
storage/maria/ma_rename.c:
TODO as a word
storage/maria/ma_rt_index.c:
merge from MyISAM into Maria
storage/maria/ma_rt_split.c:
merge from MyISAM into Maria
storage/maria/ma_search.c:
merge from MyISAM into Maria
storage/maria/ma_sort.c:
merge from MyISAM into Maria
storage/maria/ma_update.c:
merge from MyISAM into Maria
storage/maria/ma_write.c:
merge from MyISAM into Maria
storage/maria/maria_chk.c:
merge from MyISAM into Maria
storage/maria/maria_def.h:
merge from MyISAM into Maria
storage/maria/maria_pack.c:
merge from MyISAM into Maria
storage/maria/unittest/ma_test_loghandler_pagecache-t.c:
fix for compiler warning
storage/myisam/ha_myisam.cc:
merge from MyISAM into Maria
storage/myisammrg/ha_myisammrg.cc:
merge from MyISAM into Maria
Fixed befaviour when loghandler flags changed from one
run to another one.
Description of maria transaction log and control file
added to the file commandÍs magic number file.
mysys/mf_pagecache.c:
postreview changes
storage/maria/ma_control_file.c:
Postreview changes.
storage/maria/ma_control_file.h:
Postreview changes.
storage/maria/ma_loghandler.c:
Postreview changes.
Fixed befaviour when loghandler flags changed from
one run to another one.
storage/maria/ma_loghandler.h:
Postreview changes.
Functions comment left only near the function body.
storage/maria/ma_loghandler_lsn.h:
Postreview changes.
storage/maria/unittest/ma_test_loghandler-t.c:
Postreview changes.
storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
Postreview changes.
storage/maria/unittest/ma_test_loghandler_multithread-t.c:
Postreview changes.
storage/maria/unittest/ma_test_loghandler_pagecache-t.c:
Postreview changes.
support-files/magic:
Description of maria transaction log and control file
added to the file commandÕs magic number file.
Some debug info and comments added
include/pagecache.h:
postmerge fix
mysys/mf_pagecache.c:
Postmerge fix (including changing type of LSN)
Additional DBUG_ASSERTs added
Comment about pinning mechanism added
storage/maria/ma_control_file.c:
Used the same LSN storing procedure everywhere
Postmerge fix (including changing type of LSN)
storage/maria/ma_control_file.h:
Postmerge fix (including changing type of LSN)
storage/maria/ma_loghandler.c:
Postmerge fix (including changing type of LSN)
storage/maria/ma_loghandler.h:
Postmerge fix (including changing type of LSN)
storage/maria/ma_loghandler_lsn.h:
Postmerge fix (including changing type of LSN)
storage/maria/unittest/Makefile.am:
Postmerge fix
storage/maria/unittest/ma_control_file-t.c:
Postmerge fix (including changing type of LSN)
storage/maria/unittest/ma_test_loghandler-t.c:
Postmerge fix (including changing type of LSN)
storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
Postmerge fix (including changing type of LSN)
storage/maria/unittest/ma_test_loghandler_multithread-t.c:
Postmerge fix (including changing type of LSN)
storage/maria/unittest/ma_test_loghandler_pagecache-t.c:
Postmerge fix (including changing type of LSN)
storage/maria/unittest/mf_pagecache_consist.c:
Postmerge fix (including changing type of LSN)
storage/maria/unittest/mf_pagecache_single.c:
Postmerge fix (including changing type of LSN)
into desktop.sanja.is.com.ua:/home/bell/mysql/bk/work-maria-pagecache
mysys/Makefile.am:
Auto merged
mysys/mf_keycache.c:
Auto merged
storage/maria/Makefile.am:
Auto merged
storage/maria/unittest/ma_control_file-t.c:
Auto merged
storage/maria/unittest/mf_pagecache_consist.c:
Auto merged
storage/maria/unittest/mf_pagecache_single.c:
Auto merged
storage/maria/unittest/test_file.h:
Auto merged
include/pagecache.h:
merge
mysys/mf_pagecache.c:
merge
storage/maria/maria_def.h:
merge
storage/maria/unittest/Makefile.am:
merge
unittest/mysys/Makefile.am:
merge
storage/maria/unittest/test_file.c:
Rename: unittest/mysys/test_file.c -> storage/maria/unittest/test_file.c
storage/maria/unittest/test_file.h:
Rename: unittest/mysys/test_file.h -> storage/maria/unittest/test_file.h
include/pagecache.h:
A waiting queue mechanism moved to separate file wqueue.*
Pointer name changed for compatibility
mysys/Makefile.am:
A waiting queue mechanism moved to separate file wqueue.*
mysys/mf_keycache.c:
fixed unsigned comparison
mysys/mf_pagecache.c:
A waiting queue mechanism moved to separate file wqueue.*
Fixed bug in unregistering block during write
storage/maria/Makefile.am:
The loghandler files added
storage/maria/ma_control_file.h:
Now we have loghandler and can compile control file
storage/maria/maria_def.h:
Including files need for compilation of maria
storage/maria/unittest/Makefile.am:
unit tests of loghandler
storage/maria/unittest/ma_control_file-t.c:
Used maria def
storage/maria/unittest/mf_pagecache_consist.c:
fixed memory overrun
storage/maria/unittest/mf_pagecache_single.c:
fixed used uninitialized memory
unittest/mysys/Makefile.am:
unittests of pagecache moved to maria becase pagecache need loghandler
include/wqueue.h:
New BitKeeper file ``include/wqueue.h''
mysys/wqueue.c:
New BitKeeper file ``mysys/wqueue.c''
storage/maria/ma_loghandler.c:
New BitKeeper file ``storage/maria/ma_loghandler.c''
storage/maria/ma_loghandler.h:
New BitKeeper file ``storage/maria/ma_loghandler.h''
storage/maria/ma_loghandler_lsn.h:
New BitKeeper file ``storage/maria/ma_loghandler_lsn.h''
storage/maria/unittest/ma_test_loghandler-t.c:
New BitKeeper file ``storage/maria/unittest/ma_test_loghandler-t.c''
storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
New BitKeeper file ``storage/maria/unittest/ma_test_loghandler_multigroup-t.c''
storage/maria/unittest/ma_test_loghandler_multithread-t.c:
New BitKeeper file ``storage/maria/unittest/ma_test_loghandler_multithread-t.c''
storage/maria/unittest/ma_test_loghandler_pagecache-t.c:
New BitKeeper file ``storage/maria/unittest/ma_test_loghandler_pagecache-t.c''
Removed compiler warnings
Fixed clashing function name in maria
Disable maria tests from MySQL level for now
BitKeeper/deleted/.del-ha_maria.cc:
Rename: libmysqld/ha_maria.cc -> BitKeeper/deleted/.del-ha_maria.cc
BitKeeper/etc/ignore:
added libmysqld/ha_maria.cc
---
added storage/maria/unittest/maria_control unittest/maria_control
---
added *.Tpo
---
added unittest/page_cache_test_file_1
---
added unittest/pagecache_debug.log
---
added unittest/mysys/mf_pagecache_consist_1k-t-big unittest/mysys/mf_pagecache_consist_1kHC-t-big unittest/mysys/mf_pagecache_consist_1kRD-t-big unittest/mysys/mf_pagecache_consist_1kWR-t-big unittest/mysys/mf_pagecache_consist_64k-t-big unittest/mysys/mf_pagecache_consist_64kHC-t-big unittest/mysys/mf_pagecache_consist_64kRD-t-big unittest/mysys/mf_pagecache_consist_64kWR-t-big
---
added unittest/mysys/mf_pagecache_single_64k-t-big
Makefile.am:
Don't run 'test-unit' by default (takes too long time)
client/mysqldump.c:
Fixed compiler warning
include/lf.h:
Remove compiler warnings about not used require_pins constant
include/pagecache.h:
LSN should be of type ulonglong
(This fixes some compiler warnings)
mysql-test/r/events_logs_tests.result:
Make test predictable
mysql-test/r/view.result:
Make test results predictable
mysql-test/t/disabled.def:
Disable maria tests for a while
mysql-test/t/events_logs_tests.test:
Make test predictable
mysql-test/t/view.test:
Make test results predictable
mysys/lf_alloc-pin.c:
#warning ->QQ
mysys/lf_hash.c:
#warning ->QQ
Removed compiler warnings
mysys/mf_pagecache.c:
Removed compiler warnings
mysys/my_rename.c:
Removed compiler warnings
plugin/daemon_example/daemon_example.c:
Remove compiler warning
sql/ha_ndbcluster.cc:
Remove compiler warning
sql/udf_example.c:
Remove compiler warning
storage/maria/lockman.c:
Changed #warnings to QQ comment
Removed compiler warnings
storage/maria/ma_blockrec.c:
Removed compiler warnings
storage/maria/ma_check.c:
After merge fixes
storage/maria/ma_key.c:
After merge fixes
storage/maria/ma_packrec.c:
After merge fixes
storage/maria/ma_rkey.c:
After merge fixes
storage/maria/ma_sort.c:
After merge fixes
storage/maria/ma_sp_defs.h:
Rename clashing function name
storage/maria/ma_sp_key.c:
Rename clashing function name
storage/maria/ma_test_all.res:
New test results
storage/maria/ma_unique.c:
Fixed compiler warning
storage/maria/tablockman.c:
#warning -> QQ
storage/maria/tablockman.h:
#warning -> QQ
storage/maria/trnman.c:
#warning -> QQ
storage/maria/unittest/lockman2-t.c:
Removed compiler warnings
storage/maria/unittest/ma_control_file-t.c:
Removed warning for 'maria_control' file not found
storage/maria/unittest/trnman-t.c:
Removed compiler warnings
storage/ndb/src/mgmapi/mgmapi.cpp:
Remove compiler warnings
unittest/mysys/mf_pagecache_consist.c:
Removed compiler warnings
unittest/mysys/my_atomic-t.c:
Removed compiler warnings
- Fixes some things missed in myisam->maria port
- Moved variables that holds the state for the current row to 'cur_row'
- Changed most uchar * to byte * to be able to remove a lot of casts
- Removed RAID support
- Added CHECK for rows-in-block
- Added allocate_dynamic() for easier usage of dynamic rows when we know how many entries we will need
- Reorder columns after CREATE for more optimal row storage (for rows-in-block)
- Removed flag 'RRND_PRESERVER_LASTINX' (not needed)
- Extended ma_test_all.sh to test more completely all row formats
- New structs and variables to hold rows-in-block and bitmap information
- Added org_data_file_type in header to allow easy restore of old record format when doing maria_pack / maria_chk -u
- More virtual functions to handle different row types
- Pointer to row is now MARIA_RECORD_POS instead of my_off_t
- New header signature for MARIA index files
- Fixed bugs in ma_test1.c and ma_test2.c
- All key and row blocks are now of same size
- We now only have one link chain for deleted key blocks
include/m_string.h:
Define bzero_if_purify
include/maria.h:
Implementation of rows-in-block
include/my_base.h:
Implementation of rows-in-block
include/my_handler.h:
Cleanup macros
Added size_to_store_key_length()
include/my_sys.h:
Added 'allocate_dynamic()'
include/myisamchk.h:
Implementation of rows-in-block
mysys/array.c:
Added allocate_dynamic()
mysys/mf_keycache.c:
Moved DBUG_ENTER to it's right position
mysys/my_pread.c:
Ensure my_errno is always set
sql/filesort.cc:
Fixed some compiler warnings
sql/gen_lex_hash.cc:
Removed not needed 'inline'
sql/ha_maria.cc:
Implementation of rows-in-block
Fixed compiler warnings
sql/mysqld.cc:
Fixed setting of wrong variable
sql/uniques.cc:
Fixed compiler warnings
storage/maria/Makefile.am:
Implementation of rows-in-block
storage/maria/ma_check.c:
Removed RAID functions
Added support for CHECK of rows-in-blocks rows
storage/maria/ma_checksum.c:
Implementation of rows-in-block
storage/maria/ma_close.c:
Implementation of rows-in-block
storage/maria/ma_create.c:
Implementation of rows-in-block:
- Reorder columns
- All key blocks are now of same size
- Removed old RAID support
storage/maria/ma_dbug.c:
Implementation of rows-in-block
storage/maria/ma_delete.c:
Implementation of rows-in-block
storage/maria/ma_delete_all.c:
Implementation of rows-in-block
storage/maria/ma_dynrec.c:
info->rec_buff is now allocated through _ma_alloc_buffer()
Use new info->cur_row structure
storage/maria/ma_extra.c:
Implementation of rows-in-block
storage/maria/ma_ft_boolean_search.c:
Removed compiler warnings
Indentation fixes
storage/maria/ma_ft_nlq_search.c:
Removed compiler warnings
Indentation fixes
storage/maria/ma_ft_update.c:
Removed some casts
storage/maria/ma_fulltext.h:
Changed pointer type
storage/maria/ma_info.c:
Implementation of rows-in-block
More general _ma_report_error()
storage/maria/ma_init.c:
Implementation of rows-in-block
storage/maria/ma_key.c:
Implementation of rows-in-block
Removed some casts
storage/maria/ma_keycache.c:
Fixed DBUG entry
storage/maria/ma_locking.c:
Implementation of rows-in-block
storage/maria/ma_open.c:
Implementation of rows-in-block
storage/maria/ma_packrec.c:
Indentation fixes
Changed uchar * to byte * to make it possible to remove some casts
storage/maria/ma_page.c:
Implementation of rows-in-block
storage/maria/ma_range.c:
Implementation of rows-in-block
storage/maria/ma_rfirst.c:
Implementation of rows-in-block
storage/maria/ma_rkey.c:
Implementation of rows-in-block
Indentation fixes
storage/maria/ma_rlast.c:
Implementation of rows-in-block
storage/maria/ma_rnext.c:
Implementation of rows-in-block
storage/maria/ma_rnext_same.c:
Implementation of rows-in-block
storage/maria/ma_rprev.c:
Implementation of rows-in-block
storage/maria/ma_rrnd.c:
Implementation of rows-in-block
Removed flag 'RRND_PRESERVER_LASTINX', by not resetting lastinx (This is reset by maria_scan_init())
storage/maria/ma_rsame.c:
Implementation of rows-in-block
storage/maria/ma_rsamepos.c:
Implementation of rows-in-block
storage/maria/ma_rt_index.c:
Implementation of rows-in-block
storage/maria/ma_rt_index.h:
Implementation of rows-in-block
storage/maria/ma_rt_key.c:
Implementation of rows-in-block
storage/maria/ma_rt_key.h:
Implementation of rows-in-block
storage/maria/ma_rt_mbr.c:
Implementation of rows-in-block
storage/maria/ma_rt_mbr.h:
Implementation of rows-in-block
storage/maria/ma_rt_split.c:
Implementation of rows-in-block
storage/maria/ma_rt_test.c:
Indentation fix
storage/maria/ma_scan.c:
Implementation of rows-in-block
Added 'maria_scan_end()'
storage/maria/ma_search.c:
Implementation of rows-in-block
storage/maria/ma_sort.c:
Indentation fixes
uchar -> byte to be able to remove some casts
storage/maria/ma_sp_defs.h:
uchar * -> byte *
storage/maria/ma_sp_key.c:
uchar * -> byte *
storage/maria/ma_sp_test.c:
Indentation fixes
storage/maria/ma_static.c:
New header signature for MARIA
storage/maria/ma_statrec.c:
int -> my_bool functions
my_off_t -> MARIA_RECORD_POS
Fixed argument order for _ma_read_static_record()
storage/maria/ma_test1.c:
Implementation of rows-in-block
Fixed some bugs in VARCHAR and BLOB testing
storage/maria/ma_test2.c:
Implementation of rows-in-block
Fixed bug in BLOB testing
storage/maria/ma_test3.c:
Implementation of rows-in-block
storage/maria/ma_test_all.sh:
Run all tests with dynamic, static and block row formats
(For the moment we skip REPAIR test of rows-in-block as this is not yet implemented)
storage/maria/ma_unique.c:
Implementation of rows-in-block
storage/maria/ma_update.c:
Implementation of rows-in-block
storage/maria/ma_write.c:
Implementation of rows-in-block
Write of row is split into two parts, as rows-in-block format require us to do write of row before keys (to get row position) in contrast to all other row formats
storage/maria/maria_chk.c:
Implementation of rows-in-block
storage/maria/maria_def.h:
Implementation of rows-in-block
- New structs and variables to hold rows-in-block and bitmap information
- Added org_data_file_type in header to allow easy restore of old record format when doing maria_pack / maria_chk -u
- More virtual functions to handle different row types
- Pointer to row is now MARIA_RECORD_POS instead of my_off_t
- uchar -> byte for many parameters to avoid casts
storage/maria/maria_ftdump.c:
Implementation of rows-in-block
storage/maria/maria_pack.c:
Implementation of rows-in-block
storage/myisam/mi_check.c:
Added new row types into switch to avoid compiler warnings
Added some casts to avoid warnings after changing type of lastkey and buff
storage/myisam/mi_create.c:
Fix that 'pack_fields' is calculated correctly
storage/myisam/mi_rsamepos.c:
Implementation of rows-in-block
storage/myisam/mi_test2.c:
Fixed wrong printf
storage/myisam/sort.c:
uchar * -> byte *
support-files/magic:
Added support for Maria files
Fided wrong entry's for MyISAM files
storage/maria/ma_bitmap.c:
New BitKeeper file ``storage/maria/ma_bitmap.c''
storage/maria/ma_blockrec.c:
New BitKeeper file ``storage/maria/ma_blockrec.c''
storage/maria/ma_blockrec.h:
New BitKeeper file ``storage/maria/ma_blockrec.h''
storage/maria/ma_checkpoint.c:
comments
storage/maria/ma_close.c:
comments
storage/maria/ma_write.c:
merge from myisam
storage/maria/maria_def.h:
typo
storage/myisam/mi_delete.c:
unneeded {}, making it identical to Maria
a function to store information about transactions into buffers,
is added to the transaction manager, and called by the Checkpoint module.
storage/maria/ma_checkpoint.c:
"collecting info about transactions" moves to trnman.c
storage/maria/trnman.c:
a function to store information about the active transactions list
and committed transactions list, into buffers, for use by the
Checkpoint module.
This function needs to know how many trns there are in the committed
list, so we introduce a counter, trnman_committed_transactions.
m_string.h is needed for LEX_STRING.
storage/maria/trnman.h:
A function to store information about the active transactions list
and committed transactions list, into buffers, for use by the
Checkpoint module.
storage/maria/unittest/trnman-t.c:
trnman.h needs LEX_STRING so m_string.h
Only failure is ndb_restore - could have been worse!!
include/pagecache.h:
LSN->lsn
mysys/mf_keycache.c:
page_status is int
mysys/mf_pagecache.c:
merge of recent key cache changes
sql/mysqld.cc:
post-merge fixes
sql/set_var.cc:
post-merge fixes
storage/maria/ha_maria.cc:
merge of recent MyISAM changes into Maria
storage/maria/ha_maria.h:
merge of recent MyISAM changes into Maria
storage/maria/ma_close.c:
merge of recent MyISAM changes into Maria
storage/maria/ma_create.c:
merge of recent MyISAM changes into Maria
storage/maria/ma_delete.c:
merge of recent MyISAM changes into Maria
storage/maria/ma_dynrec.c:
merge of recent MyISAM changes into Maria
storage/maria/ma_ft_boolean_search.c:
merge of recent MyISAM changes into Maria
storage/maria/ma_key.c:
merge of recent MyISAM changes into Maria
storage/maria/ma_keycache.c:
merge of recent MyISAM changes into Maria
storage/maria/ma_open.c:
merge of recent MyISAM changes into Maria
storage/maria/ma_page.c:
merge of recent MyISAM changes into Maria
storage/maria/ma_rsamepos.c:
merge of recent MyISAM changes into Maria
storage/maria/ma_statrec.c:
merge of recent MyISAM changes into Maria
storage/maria/ma_unique.c:
merge of recent MyISAM changes into Maria
storage/maria/maria_chk.c:
merge of recent MyISAM changes into Maria
storage/maria/maria_pack.c:
merge of recent MyISAM changes into Maria
storage/myisam/myisampack.c:
compiler warning
Plus compiler warnings, and a fix to the pagecache unit tests for IA64
include/maria.h:
merging MyISAM into Maria
include/myisam.h:
post-merge fixes
mysql-test/r/maria.result:
merging MyISAM into Maria
mysql-test/t/maria.test:
merging MyISAM into Maria
sql/mysqld.cc:
post-merge fixes
storage/maria/ha_maria.cc:
merging MyISAM into Maria
storage/maria/ha_maria.h:
merging MyISAM into Maria
storage/maria/ma_check.c:
merging MyISAM into Maria
storage/maria/ma_open.c:
merging MyISAM into Maria
storage/maria/ma_packrec.c:
merging MyISAM into Maria
storage/maria/ma_range.c:
merging MyISAM into Maria
storage/maria/ma_sort.c:
merging MyISAM into Maria
storage/maria/maria_def.h:
merging MyISAM into Maria
storage/maria/maria_pack.c:
merging MyISAM into Maria
storage/maria/plug.in:
merging MyISAM into Maria
storage/myisam/myisamdef.h:
merging MyISAM into Maria
storage/myisam/myisampack.c:
fix for compiler warnings
unittest/mysys/mf_pagecache_consist.c:
this sets the stack size lower than the minimum on IA64, we remove it
(it made the test fail)
unittest/mysys/mf_pagecache_single.c:
this sets the stack size lower than the minimum on IA64, we remove it
(it made the test fail)
- cleanups, simplifications
- moving the construction of the "dirty pages table" into the
pagecache where it belongs (because it's the pagecache which knows
dirty pages). TODO: do the same soon for the "transactions table".
- fix for a small bug in the pagecache (decrementation of "changed_blocks")
include/pagecache.h:
prototype
mysys/mf_pagecache.c:
m_string.h moves up for LEX_STRING to be known for pagecache.h.
In pagecache_delete_page(), we must decrement "blocks_changed" even
if we just delete the page without flushing it.
A new function pagecache_collect_changed_blocks_with_LSN()
(used by the Checkpoint module), which stores information about the
changed blocks (a.k.a. "the dirty pages table") into a LEX_STRING.
This function is not tested now, it will be when there is a Checkpoint.
storage/maria/ma_checkpoint.c:
refining the checkpoint code: factoring functions, moving the
construction of the "dirty pages table" into mf_pagecache.c
(I'll do the same with the construction of the "transactions table"
once Serg tells me what's the best way to do it).
storage/maria/ma_least_recently_dirtied.c:
Simplifying the thread which does background flushing of
least-recently-dirtied pages:
- in first version that thread will not flush, just do checkpoints
- in 2nd version, flushing should re-use existing page cache functions
like flush_pagecache_blocks().
unittest/mysys/test_file.h:
m_string.h moves up for LEX_STRING to be known in pagecache.h
Adding rec_lsn to Maria's page cache. Misc fixes to Checkpoint.
mysys/mf_pagecache.c:
adding rec_lsn, the LSN when a page first became dirty.
It is set when unlocking a page (TODO: should also be set when
the unlocking is an implicit part of pagecache_write()).
It is reset in link_to_file_list() and free_block()
(one of which is used every time we flush a block).
It is a ulonglong and not LSN, because its destination is comparisons
for which ulonglong is better than a struct.
storage/maria/ma_checkpoint.c:
misc fixes to Checkpoint (updates now that the transaction manager
and the page cache are more known)
storage/maria/ma_close.c:
an important note for the future.
storage/maria/ma_least_recently_dirtied.c:
comment
don't run tests depending on the generic lock manager which will be
removed; don't run page cache unit tests by default (too intensive).
storage/maria/unittest/Makefile.am:
don't run tests depending on the generic lock manager (it will
be removed in the end), one of them crashes.
unittest/mysys/Makefile.am:
page cache tests put a too high load, causes problems on shared machines;
so we still build them but give them a suffix so that they are
not run by the default "test-unit" Makefile target.
Sync table files after CREATE (of non-temp table), DROP, RENAME,
TRUNCATE, sync directories and symlinks (for the 3 first commands).
Comments for future log records.
In ma_rename(), if rename of index works and then rename of data fails,
try to undo the rename of the index to leave a consistent state.
mysys/my_symlink.c:
sync directory after creation of a symbolic link in it, if asked
mysys/my_sync.c:
comment. Fix for when the file's name has no directory in it.
storage/maria/ma_create.c:
sync files and links and dirs when creating a non-temporary table.
Optimizations of the above to reduce syncs in the common cases:
* if index file and data file have the exact same paths (regular
and link), sync the directories (of regular and link) only once
after creating the last file (the data file).
* don't sync the data file if we didn't write to it (always true
in our builds).
storage/maria/ma_delete_all.c:
sync files after truncating a table
storage/maria/ma_delete_table.c:
sync files and symbolic links and dirs after dropping a table
storage/maria/ma_extra.c:
a function which wraps the sync of the index file and the sync of the
data file.
storage/maria/ma_locking.c:
using a wrapper function
storage/maria/ma_rename.c:
sync files and symbolic links and dirs after renaming a table.
If rename of index works and then rename of data fails, try to undo
the rename of the index to leave a consistent state. That is just a
try, it may fail...
storage/maria/ma_test3.c:
warning to not pay attention to this test.
storage/maria/maria_def.h:
declaration for the function added to ma_extra.c
1) on Mac OS X >=10.3, fcntl() is recommended over fsync (from the
man page: "[With fsync()] the disk drive may also re-order the data
so that later writes may be present while earlier writes are not.
Applications such as databases that require a strict ordering of writes
should use F_FULLFSYNC to ensure their data is written in the order
they expect"). I have seen two other pieces of software changing from
fsync to F_FULLFSYNC on Mac OS X.
2) to make a file creation/deletion/renaming durable on Linux (at least
ext2 as I have tested) (see "man fsync"), a fsync() on the directory
is needed: new functions to do that, and a flag MY_SYNC_DIR to do
it in my_create/my_delete/my_rename.
3) now using this directory syncing when creating he frm if
opt_sync_frm, and for Maria's control file when it is created.
include/my_sys.h:
new flag to my_create/my_delete/my_rename, which asks to sync the
directory after the operation is done (currently does nothing except
on Linux)
libmysql/CMakeLists.txt:
my_create() now depends on my_sync() so my_sync is needed for libmysql
libmysql/Makefile.shared:
my_create() now depends on my_sync() so my_sync is needed for libmysql
mysys/my_create.c:
my_create() can now sync the directory if asked for
mysys/my_delete.c:
my_delete() can now sync the directory if asked for
mysys/my_open.c:
it was a bug that my_close() is done on fd but a positive fd would
still be returned, by my_register_filename().
mysys/my_rename.c:
my_rename() can now sync the two directories (the one of "from" and
the one of "to") if asked for.
mysys/my_sync.c:
On recent Mac OS X, fcntl(F_FULLFSYNC) is recommended over fsync()
(see "man fsync" on Mac OS X 10.3).
my_sync_dir(): to sync a directory after a file creation/deletion/
renaming; can be called directly or via MY_SYNC_DIR in my_create/
my_delete/my_rename(). No-op except on Linux (see "man fsync" on Linux).
my_sync_dir_from_file(): same as above, just more practical when the
caller has a file name but no directory name ready.
Should the #warning even be a #error? I mean do we want to release
binaries which don't guarantee any durability?
sql/log.cc:
a TODO for the future.
sql/unireg.cc:
If we sync the frm it makes sense to also sync its creation in the
directory.
storage/maria/ma_control_file.c:
control file is vital, try to make it to disk
This makes an expected warning message about the index file's size, go away,
as intended.
storage/maria/ma_test_all.sh:
importing change made to MyISAM's mi_test_all, into Maria's ma_test_all
This makes an expected warning message about the index file's size, go away,
as intended.
storage/maria/tablockman.c:
comments. bugfix - a special case in release_locks
storage/maria/unittest/lockman1-t.c:
updated
storage/maria/unittest/lockman2-t.c:
new tests
storage/maria/unittest/lockman1-t.c:
New BitKeeper file ``storage/maria/unittest/lockman1-t.c''
storage/maria/tablockman.c:
New BitKeeper file ``storage/maria/tablockman.c''
storage/maria/tablockman.h:
New BitKeeper file ``storage/maria/tablockman.h''
storage/maria/unittest/lockman2-t.c:
New BitKeeper file ``storage/maria/unittest/lockman2-t.c''
the unit test of the control file module.
storage/maria/trnman.c:
fix for a bug (i has to be in [1..SHORT_TRID_MAX])
storage/maria/unittest/ma_control_file-t.c:
corrupted checksum is in buffer[0], not in buffer[1]
"Changing MI_KEY_BLOCK_LENGTH makes a wrong myisamchk"
in the Maria tree as it is really needed to get "ma_test_all" to pass
(this bug showed up in Maria first, not in MyISAM).
Now ma_test_all does not have corruption messages about test2 anymore,
and shows the same output as mi_test_all except that
ma_test_all has this at the start:
lt-maria_chk: MARIA file test1
lt-maria_chk: warning: Size of indexfile is: 8192 Should be: 16384
MARIA-table 'test1' is usable but should be fixed
This was already true before importing the bugfix.
Wonder if normal.
NOTE: this bugfix is currently in 5.1-engines, in a few days
will be in the main 5.1, then we'll merge 5.1
into Maria: this will merge the bugfix into storage/myisam, but there
will be no need to apply it to storage/maria again. I just couldn't
wait a few days for the 5.1-engines->5.1 merge to be allowed.
mysql-test/r/maria.result:
result update
mysql-test/t/maria.test:
test for BUG#22119
storage/maria/ma_check.c:
fix for BUG#22119
---
comments
mysys/lf_alloc-pin.c:
comments
mysys/lf_dynarray.c:
comments
mysys/lf_hash.c:
comments, charset-aware comparison
storage/maria/trnman.c:
comments
storage/maria/unittest/lockman-t.c:
test case for a bug
unittest/mysys/my_atomic-t.c:
removed mistakenly copied line