into mysql.com:/home/svoj/devel/mysql/BUG32111/mysql-5.1-engines
mysql-test/r/symlink.result:
Auto merged
mysql-test/t/symlink.test:
Auto merged
mysys/my_symlink2.c:
Auto merged
into mysql.com:/home/svoj/devel/mysql/BUG32111/mysql-5.0-engines
mysql-test/r/symlink.result:
Auto merged
mysql-test/t/symlink.test:
Auto merged
mysys/my_symlink2.c:
Auto merged
into ramayana.hindu.god:/home/tsmith/m/bk/build/51-fix
include/my_sys.h:
Auto merged
libmysql/CMakeLists.txt:
Auto merged
mysys/default.c:
Manual merge
into ramayana.hindu.god:/home/tsmith/m/bk/build/b20748/51
libmysql/Makefile.shared:
Auto merged
mysys/CMakeLists.txt:
Auto merged
mysys/Makefile.am:
Auto merged
include/my_sys.h:
Manual merge
mysys/default.c:
Manual merge:
- We don't support OS/2 in MySQL 5.1
- On Unix, we search /etc/mysql/ in MySQL 5.1
A user could not override system-wide settings in their ~/.my.cnf,
because the DEFAULT_SYSCONFDIR was being searched last. Also, in
some configurations (especially when the --sysconfdir compile-time
option is set to /etc or /etc/mysql), the system-wide my.cnf file
was read multiple times, causing confusion and potential problems.
Rearrange default directories to conform to the manual and logic.
Move --sysconfdir=<path> (DEFAULT_SYSCONFDIR) from the last default
directory to the middle of the list. $HOME/.my.cnf should be last,
so the user is able to override the system-wide settings.
Change init_default_directories() to remove duplicates from the
list.
include/my_sys.h:
Add array_append_string_unique(), from mf_arr_appstr.c
libmysql/Makefile.shared:
Add new mf_arr_appstr.lo object
mysys/CMakeLists.txt:
Add new mf_arr_appstr.c source.
mysys/Makefile.am:
Add new mf_arr_appstr.c source.
mysys/default.c:
Change order in which defaults files are added to default_directories,
in order to conform to the manual (and to common sense). This fixes
a particularly bad problem on Unix, where ~/.my.cnf was read before
/usr/local/etc/my.cnf.
Also, don't add duplicate entries; move the existing entry to the
end of the list instead.
Here is a comparison of the order of defaults files, BEFORE and AFTER
this patch.
On Windows:
BEFORE: C:\, GetWindowsDirectory(), GetSystemWindowsDirectory(),
$MYSQL_HOME, defaults-extra-file, INSTALLDIR
AFTER: GetSystemWindowsDirectory(), GetWindowsDirectory(), C:\,
INSTALLDIR, $MYSQL_HOME, defaults-extra-file
GetSystemWindowsDirectory() is moved before GetWindowsDirectory() because
the former is shared by all Terminal Services users, while the latter is
private for each user.
On Netware (no change):
BEFORE: sys:/etc/, $MYSQL_HOME, defaults-extra-file
AFTER: sys:/etc, $MYSQL_HOME, defaults-extra-file
On OS/2:
BEFORE: $ETC, /etc, $MYSQL_HOME, defaults-extra-file
AFTER: /etc, $ETC, $MYSQL_HOME, defaults-extra-file
On everything else (general Unix):
BEFORE: /etc, $MYSQL_HOME, defaults-extra-file, ~/, --sysconfdir
AFTER: /etc/, --sysconfdir, $MYSQL_HOME, defaults-extra-file, ~/
The BEFORE code added --sysconfdir on all systems, but only the
Unix build system actually defined a value for it.
mysys/mf_arr_appstr.c:
BitKeeper file /home/tsmith/m/bk/build/50-b20748/mysys/mf_arr_appstr.c
RENAME TABLE against a table with DATA/INDEX DIRECTORY overwrites
the file to which the symlink points.
This is security issue, because it is possible to create a table with
some name in some non-system database and set DATA/INDEX DIRECTORY
to mysql system database. Renaming this table to one of mysql system
tables (e.g. user, host) would overwrite the system table.
Return an error when the file to which the symlink points exist.
mysql-test/r/symlink.result:
A test case for BUG#32111.
mysql-test/t/symlink.test:
A test case for BUG#32111.
mysys/my_symlink2.c:
Return an error when the file to which the symlink points exist.
some platforms
Since the behavior of write(fd, buf, 0) is undefined, it may fail with
EFAULT on some architectures when buf == NULL. The error was propagated
up to a caller, since my_write() code did not handle it properly.
Fixed by checking the 'number of bytes' argument in my_write() and
returning before calling the write() system call when there is nothing
to write.
mysys/my_write.c:
Return from my_write() before calling the write() system call when the
number of bytes to be written is 0, since the behavior of write() in
this case is not portable.
into mysql.com:/home/svoj/devel/mysql/BUG31159/mysql-5.0-engines
include/my_sys.h:
Auto merged
mysql-test/r/ctype_ucs.result:
Auto merged
mysql-test/t/ctype_ucs.test:
Auto merged
mysys/charset.c:
Manual merge.
sql/item_func.cc:
Manual merge.
ucs2 doesn't provide required by fulltext ctype array. Crash
happens because fulltext attempts to use unitialized ctype
array.
Fixed by converting ucs2 fields to compatible utf8 analogue.
include/my_sys.h:
Added a function to find compatible character set with ctype array
available. Currently used by fulltext search to find compatible
substitute for ucs2 collations.
mysql-test/r/ctype_ucs.result:
A test case for BUG#31159.
mysql-test/t/ctype_ucs.test:
A test case for BUG#31159.
mysys/charset.c:
Added a function to find compatible character set with ctype array
available. Currently used by fulltext search to find compatible
substitute for ucs2 collations.
sql/item_func.cc:
Convert ucs2 fields to utf8. Fulltext requires ctype array, but
ucs2 doesn't provide it.
into mysql.com:/home/my/mysql-maria
include/my_sys.h:
Auto merged
mysql-test/r/maria.result:
Auto merged
mysql-test/t/maria.test:
Auto merged
sql/handler.h:
Auto merged
sql/mysqld.cc:
Auto merged
storage/maria/ha_maria.cc:
Auto merged
storage/maria/ma_bitmap.c:
Auto merged
storage/maria/ma_blockrec.c:
Auto merged
storage/maria/ma_loghandler.c:
Auto merged
storage/maria/ma_pagecache.c:
Auto merged
storage/maria/ma_test1.c:
Auto merged
storage/maria/ma_test_recovery.expected:
Auto merged
storage/maria/ma_test_recovery:
Auto merged
sql/mysql_priv.h:
manual merge
storage/maria/ma_recovery.c:
manual merge
storage/maria/ma_test2.c:
manual merge
Changed format for REDO_INSERT_ROWS_BLOBS
Fixed several bugs in handling of big blobs
Added redo_free_head_or_tail() & redo_insert_row_blobs()
Added uuid to control file
maria_checks now verifies that not used part of bitmap is 0
REDO_PURGE_BLOCKS -> REDO_FREE_BLOCKS
Added REDO_FREE_HEAD_OR_TAIL
Fixes problem when trying to read block outside of file during REDO
include/my_global.h:
STACK_DIRECTION is already set by configure
mysql-test/r/maria.result:
Updated results
mysql-test/t/maria.test:
Test shrinking of VARCHAR
mysys/my_realloc.c:
Fixed indentation
mysys/safemalloc.c:
Fixed indentation
sql/filesort.cc:
Removed some casts
sql/mysqld.cc:
Added missing setting of myisam_stats_method_str
sql/uniques.cc:
Removed some casts
storage/maria/ma_bitmap.c:
Added printing of bitmap (for debugging)
Renamed _ma_print_bitmap() -> _ma_print_bitmap_changes()
Added _ma_set_full_page_bits()
Fixed bug in ma_bitmap_find_new_place() (affecting updates) when using big files
storage/maria/ma_blockrec.c:
Changed format for REDO_INSERT_ROWS_BLOBS
Fixed several bugs in handling of big blobs
Added code to fix some cases where redo when using blobs didn't produce idenital .MAD files as normal usage
REDO_FREE_ROW_BLOCKS doesn't anymore change pages; We only mark things free in bitmap
Remove TAIL and filler extents from REDO_FREE_BLOCKS log entry. (Fixed some asserts)
REDO_PURGE_BLOCKS -> REDO_FREE_BLOCKS
Delete tails in update. (Fixed bug when doing update that shrinks blob/varchar length)
Fixed bug when doing insert in block outside of file size.
Added redo_free_head_or_tail() & redo_insert_row_blobs()
Added pagecache_unlock_by_link() when read fails.
Much more comments, DBUG and ASSERT entries
storage/maria/ma_blockrec.h:
Prototypes of new functions
Define of SUB_RANGE_SIZE & BLOCK_FILLER_SIZE
storage/maria/ma_check.c:
Verify that not used part of bitmap is 0
storage/maria/ma_control_file.c:
Added uuid to control file
storage/maria/ma_loghandler.c:
REDO_PURGE_BLOCKS -> REDO_FREE_BLOCKS
Added REDO_FREE_HEAD_OR_TAIL
storage/maria/ma_loghandler.h:
REDO_PURGE_BLOCKS -> REDO_FREE_BLOCKS
Added REDO_FREE_HEAD_OR_TAIL
storage/maria/ma_pagecache.c:
If we write full block, remove error flag for block.
(Fixes problem when trying to read block outside of file)
storage/maria/ma_recovery.c:
REDO_PURGE_BLOCKS -> REDO_FREE_BLOCKS
Added REDO_FREE_HEAD_OR_TAIL
storage/maria/ma_test1.c:
Allow option after 'b' to be compatible with ma_test2
(This is just to simplify test scripts like ma_test_recovery)
storage/maria/ma_test2.c:
Default size of blob is now 1000 instead of 1
storage/maria/ma_test_all.sh:
Added test for bigger blobs
storage/maria/ma_test_recovery.expected:
Updated results
storage/maria/ma_test_recovery:
Added test for bigger blobs
into anubis.xiphis.org:/usr/home/antony/work/mysql-5.1-engines.merge
configure.in:
Auto merged
mysql-test/r/heap_btree.result:
Auto merged
mysql-test/r/log_tables.result:
Auto merged
mysql-test/r/partition.result:
Auto merged
mysql-test/r/system_mysql_db.result:
Auto merged
mysql-test/t/heap_btree.test:
Auto merged
mysql-test/t/log_tables.test:
Auto merged
mysql-test/t/partition.test:
Auto merged
mysys/my_getopt.c:
Auto merged
scripts/mysql_system_tables.sql:
Auto merged
sql/sql_base.cc:
Auto merged
- serializing calls to flush_pagecache_blocks_int() on the same file
to avoid known concurrency bugs
- having that, we can now enable the background thread, as the
flushes it does are now supposedly safe in concurrent situations.
- new type of flush FLUSH_KEEP_LAZY: when the background checkpoint
thread is flushing a packet of dirty pages between two checkpoints,
it uses this flush type, indeed if a file is already being flushed
by another thread it's smarter to move on to the next file than wait.
- maria_checkpoint_frequency renamed to maria_checkpoint_interval.
include/my_sys.h:
new type of flushing for the page cache: FLUSH_KEEP_LAZY
mysql-test/r/maria.result:
result update
mysys/mf_keycache.c:
indentation. No FLUSH_KEEP_LAZY support in key cache.
storage/maria/ha_maria.cc:
maria_checkpoint_frequency was somehow a hidden part of the
Checkpoint API and that was not good. Now we have checkpoint_interval,
local to ha_maria.cc, which serves as container for the user-visible
maria_checkpoint_interval global variable; setting it calls
update_checkpoint_interval which passes the new value to
ma_checkpoint_init(). There is no hiding anymore.
By default, enable background thread which does checkpoints
every 30 seconds, and dirty page flush in between. That thread takes
a checkpoint when it ends, so no need for maria_hton_panic to take one.
The | is | and not ||, because maria_panic() must always be called.
frequency->interval.
storage/maria/ma_checkpoint.c:
Use FLUSH_KEEP_LAZY for background thread when it flushes packets of
dirty pages between two checkpoints: it is smarter to move on to
the next file than wait for it to have been completely flushed, which
may take long.
Comments about flush concurrency bugs moved from ma_pagecache.c.
Removing out-of-date comment.
frequency->interval.
create_background_thread -> (interval>0).
In ma_checkpoint_background(), some variables need to be preserved
between iterations.
storage/maria/ma_checkpoint.h:
new prototype
storage/maria/ma_pagecache.c:
- concurrent calls of flush_pagecache_blocks_int() on the same file
cause bugs (see @note in that function); we fix them by serializing
in this situation. For that we use a global hash of (file, wqueue).
When flush_pagecache_blocks_int() starts it looks into the hash,
using the file as key. If not found, it inserts (file,wqueue) into the
hash, flushes the file, and finally removes itself from the hash and
wakes up any waiter in the queue. If found, it adds itself to the
wqueue and waits.
- As a by-product, we can remove changed_blocks_is_incomplete
and replace it by scanning the hash, replace the sleep() by a queue wait.
- new type of flush FLUSH_KEEP_LAZY: when flushing a file, if it's
already being flushed by another thread (even partially), return
immediately.
storage/maria/ma_pagecache.h:
In pagecache, a hash of files currently being flushed (i.e. there
is a call to flush_pagecache_blocks_int() for them).
storage/maria/ma_recovery.c:
new prototype
storage/maria/ma_test1.c:
new prototype
storage/maria/ma_test2.c:
new prototype
into lambda.hsd1.co.comcast.net.:/home/malff/TREE/mysql-5.1-rt-merge
client/mysqlcheck.c:
Auto merged
client/mysqltest.c:
Auto merged
libmysql/libmysql.c:
Auto merged
mysql-test/include/mix1.inc:
Auto merged
mysql-test/r/innodb_mysql.result:
Auto merged
mysql-test/r/udf.result:
Auto merged
mysql-test/t/udf.test:
Auto merged
sql/item.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/set_var.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_select.cc:
Auto merged
tests/mysql_client_test.c:
Auto merged
into lambda.hsd1.co.comcast.net.:/home/malff/TREE/mysql-5.0-rt-merge
mysql-test/r/udf.result:
Auto merged
mysql-test/t/udf.test:
Auto merged
sql/item.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/set_var.cc:
Auto merged
sql/udf_example.c:
Auto merged
sql/udf_example.def:
Auto merged
always process uint/ulong using ulonglong (unsigned) code
dbug printout for adjusted option values
strings/llstr.c
ullstr() - the unsigned brother of llstr()
include/m_string.h:
ullstr() - the unsigned brother of llstr()
mysql-test/t/variables.test:
test adjusted for 32bit
mysys/my_getopt.c:
always process uint/ulong using ulonglong (unsigned) code
dbug printout for adjusted option values
strings/llstr.c:
ullstr() - the unsigned brother of llstr()
into polly.(none):/home/kaa/src/maint/mysql-5.1-maint
include/my_sys.h:
Auto merged
libmysql/Makefile.shared:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/item_cmpfunc.h:
Auto merged
sql/opt_range.cc:
Auto merged
sql/records.cc:
Auto merged
sql/sql_array.h:
Auto merged
sql/sql_help.cc:
Auto merged
sql/sql_select.cc:
Auto merged
storage/myisam/ft_boolean_search.c:
Auto merged
storage/myisam/ft_nlq_search.c:
Auto merged
storage/myisam/myisampack.c:
Auto merged
mysys/mf_keycache.c:
Manual merge.
mysys/mf_sort.c:
Manual merge.
mysys/my_lib.c:
Manual merge.
mysys/queues.c:
Manual merge.
sql/sql_acl.cc:
Manual merge.
sql/sql_table.cc:
Manual merge.
storage/csv/ha_tina.cc:
Manual merge.
storage/myisam/sort.c:
Manual merge.
CPUs / Intel's ICC compile
The bug is a combination of two problems:
1. IA64/ICC MySQL binaries use glibc's qsort(), not the one in mysys.
2. The order relation implemented by join_tab_cmp() is not transitive,
i.e. it is possible to choose such a, b and c that (a < b) && (b < c)
but (c < a). This implies that result of a sort using the relation
implemented by join_tab_cmp() depends on the order in which
elements are compared, i.e. the result is implementation-specific. Since
choose_plan() uses qsort() to pre-sort the
join tables using join_tab_cmp() as a compare function, the results of
the sorting may vary depending on qsort() implementation.
It is neither possible nor important to implement a better ordering
algorithm in join_tab_cmp(). Therefore the only way to fix it is to
force our own qsort() to be used by renaming it to my_qsort(), so we don't depend
on linker to decide that.
This patch also "fixes" bug #20530: qsort redefinition violates the
standard.
include/my_sys.h:
Renamed qsort() and qsort2() to my_qsort() and my_qsort2(). Since
previously we relied on stdlib.h to provide a declaration for qsort(), a
separate declaration for my_qsort() is now required.
libmysql/Makefile.shared:
Added mf_qsort.c to libmysql, since my_lib.c now uses my_qsort() instead of qsort().
myisam/ft_boolean_search.c:
Replaced qsort2() with my_qsort2().
myisam/ft_nlq_search.c:
Replaced qsort2() with my_qsort2().
myisam/myisampack.c:
Replaced qsort() with my_qsort().
myisam/sort.c:
Replaced qsort2() with my_qsort2().
mysys/mf_keycache.c:
Replaced qsort() with my_qsort().
mysys/mf_qsort.c:
Renamed qsort() to my_qsort() and qsort2() to my_qsort2().
mysys/mf_sort.c:
Replaced qsort2() with my_qsort2().
mysys/my_lib.c:
Replaced qsort() with my_qsort().
mysys/queues.c:
Replaced qsort2() with my_qsort2().
sql/item_cmpfunc.cc:
Replaced qsort2() with my_qsort2().
sql/item_cmpfunc.h:
Replaced qsort2() with my_qsort2().
sql/opt_range.cc:
Replaced qsort() with my_qsort().
sql/records.cc:
Replaced qsort() with my_qsort().
sql/sql_acl.cc:
Replaced qsort() with my_qsort().
sql/sql_array.h:
Replaced qsort() with my_qsort().
sql/sql_help.cc:
Replaced qsort() with my_qsort().
sql/sql_select.cc:
Replaced qsort() with my_qsort().
sql/examples/ha_tina.cc:
Replaced qsort() with my_qsort().
sql/sql_table.cc:
Replaced qsort() with my_qsort().
1. available_stack_size() was getting the direction wrong,
so alloca() was never used
2. (char*) casts added to kill "break strict-aliasing rules" warnings
3. s/node/node=0/ to kill "pointer casted to integer" warning
4. added volatiles as appropriate to prevent gcc from moving
assignment out of the loop
mysys/lf_alloc-pin.c:
bugs/warnings fixed:
1. available_stack_size() was getting the direction wrong,
so alloca() was never used
2. (char*) casts added to kill "break strict-aliasing rules" warnings
3. s/node/node=0/ to kill "pointer casted to integer" warning
4. added volatiles as appropriate to prevent gcc from moving
assignment out of the loop
into ramayana.hindu.god:/home/tsmith/m/bk/maint/51
configure.in:
Auto merged
mysql-test/Makefile.am:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
scripts/Makefile.am:
Auto merged
scripts/mysql_system_tables_data.sql:
Auto merged
scripts/mysqld_safe.sh:
Auto merged
sql/sql_select.cc:
Auto merged
storage/innobase/handler/ha_innodb.cc:
Auto merged
into mysql.com:/home/my/mysql-maria
client/mysqladmin.cc:
Auto merged
include/maria.h:
Auto merged
include/my_sys.h:
Auto merged
include/mysql_com.h:
Auto merged
mysql-test/r/maria.result:
Auto merged
server-tools/instance-manager/listener.cc:
Auto merged
sql/handler.h:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_func.h:
Auto merged
sql/item_strfunc.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/table.cc:
Auto merged
sql/table.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_create.c:
Auto merged
storage/maria/ma_delete.c:
Auto merged
storage/maria/ma_loghandler.h:
Auto merged
storage/maria/ma_open.c:
Auto merged
storage/maria/ma_search.c:
Auto merged
storage/maria/ma_sort.c:
Auto merged
storage/maria/ma_test2.c:
Auto merged
storage/maria/ma_test_recovery.expected:
Auto merged
storage/maria/ma_write.c:
Auto merged
storage/maria/maria_chk.c:
Auto merged
storage/maria/maria_pack.c:
Auto merged
include/my_base.h:
Trivial manual merge
libmysql/Makefile.shared:
Trivial manual merge
sql/sql_yacc.yy:
Manual merge
storage/maria/ha_maria.cc:
Trivial manual merge
storage/maria/ma_page.c:
Trivial manual merge
storage/maria/maria_def.h:
Trivial manual merge
Added my_uuid
Added pre-support for PAGE_CHECKSUM
Added syntax for CREATE ... PAGE_CHECKSUM=# TABLE_CHECKSUM=#
Reserved place for page checksums on index, bitmap and block pages
Added index number to header of index pages
Added linked list for free directory entries (speeds up inserts with BLOCK format)
Calculate checksums in original column order (fixes bug with checksum on rows with BLOCK format)
Cleaned up all index handling to use 'info->s->keypage_header' (variable size) as the header for index pages (before this was '2')
Added 0xffffffff to end of index and block data bases and 0xfffffffe at end of bitmap pages when page checksums are not enabled
Added _ma_get_page_used() and _ma_get_used_and_node() to simplify index page header handling
rec_per_key_part is now in double precision
Reserved place in index file for my_guid and nulls_per_key_part
Give error HA_ERR_NEW_FILE if trying to open a Maria file with new, not yet supported extensions
Lots of renames to increase readability:
randomize() -> my_rnd_init()
st_maria_info -> st_maria_handler
st_maria_info -> MARIA_HA
st_maria_isaminfo -> st_maria_info
rand_struct -> my_rand_struct
rec_per_key_rows -> records_at_analyze
client/mysqladmin.cc:
rand_struct -> my_rrnd_struct
include/maria.h:
st_maria_info -> MARIA_HA
st_maria_isaminfo -> st_maria_info
Changed analyze statistics to be of double precission
Changed offset to field to be 32bits instead of 64 (safe as a record without blobs can't be that big)
include/my_base.h:
Added HA_OPTION_PAGE_CHECKSUM & HA_CREATE_PAGE_CHECKSUM
Fixed comments
Added HA_ERR_NEW_FILE
include/my_sys.h:
Added prototypes and structures for my_uuid() and my_rnd()
include/myisamchk.h:
Changed some buffers to size_t
Added possibility to have key statistics with double precission
include/mysql_com.h:
Move rand functions to mysys
libmysql/Makefile.shared:
Added my_rnd
mysql-test/r/maria.result:
Updated results
mysql-test/t/maria.test:
More tests for checksum
mysys/Makefile.am:
Added my_rnd.c and my_uuid.c
server-tools/instance-manager/listener.cc:
Fixed include order (my_global.h should always be first)
server-tools/instance-manager/mysql_connection.cc:
Fixed include order (my_global.h should always be first)
Use my_rnd_init()
server-tools/instance-manager/mysql_connection.h:
rand_struct -> my_rand_struct
sql/handler.h:
Added flag for page checksums
sql/item_func.cc:
Use new my_rnd() interface
sql/item_func.h:
Use new my_rnd() interface
sql/item_strfunc.cc:
Use new my_rnd() interface
sql/lex.h:
Added PAGE_CHECKSUM and TABLE_CHECKSUM
sql/mysql_priv.h:
Use new my_rnd() interface
sql/mysqld.cc:
Use new my_rnd() interface
sql/password.c:
Move my_rnd() to mysys
Use new my_rnd() interface
sql/sql_class.cc:
Use new my_rnd() interface
sql/sql_class.h:
Use new my_rnd() interface
sql/sql_crypt.cc:
Use new my_rnd() interface
sql/sql_crypt.h:
Use new my_rnd() interface
sql/sql_show.cc:
Simpler handling of ha_choice_values
Added PAGE_CHECKSUM
sql/sql_table.cc:
Enable correct checksum handling (for now) if not running in compatible mode
sql/sql_yacc.yy:
Added table option PAGE_CHECKSUM
Added future compatible table option TABLE_CHECKSUM (alias for CHECKSUM)
Added 'choice' target to simplify code
sql/table.cc:
Store flag for PAGE_CHECKSUM
sql/table.h:
Added support for PAGE_CHECKSUM
storage/maria/ha_maria.cc:
Remove protection for incompatbile frm and MAI
(Slow, not needed test)
Rec_per_key is now in double
Remember row type for table
Give warning if one Maria uses another row type than requested
Removed some old ASK_MONTY entries (added comments instead)
Added handling of PAGE_CHECKSUM flags
storage/maria/ma_bitmap.c:
Added page checksums to bitmap pages
Added special bitmap marker for bitmap pages
(Used to find bugs when running without page checksums)
storage/maria/ma_blockrec.c:
Added a free-link list over directory entries. This makes insert of small rows faster as we don't
have to scan the whole directory to find a not used entry.
Moved SANITY_CHECKS to maria_def.h
Simplify code by introducing dir_entry_pos()
Added support for PAGE_CHECKSUM
storage/maria/ma_blockrec.h:
Added DIR_FREE_SIZE (linked list of free directory entries)
Added PAGE_CHECKSUM
Added 'dir_entry_pos()'
storage/maria/ma_check.c:
Check that index pages has correct index number
Calculate rec_per_key with double precission
Simplify code by using '_ma_get_used_and_node()'
Check free directory list
Remove wrong end \n from messages
maria_data_on_page() -> _ma_get_page_used()
maria_putint() -> _ma_store_page_used()
rec_per_key_rows -> records_at_analyze
storage/maria/ma_checksum.c:
Calculate checksum in original column order
storage/maria/ma_create.c:
Store original column order in index file
Reserve place for nulls_per_key_part (future)
Added support for PAGE_CHECKSUM
storage/maria/ma_dbug.c:
Fixed wrong debug output of key of type 'ulong'
storage/maria/ma_delete.c:
maria_data_on_page() -> _ma_get_used_and_node()
maria_data_on_page() -> _ma_get_page_used()
maria_putint() -> _ma_store_page_used()
Added page header (index key number) to all index pages
Reserved page for checksum on index pages
Use keypage_header
storage/maria/ma_ft_update.c:
maria_putint() -> _ma_store_page_used()
Store key number at start of page
storage/maria/ma_loghandler.h:
st_maria_info -> MARIA_HA
storage/maria/ma_open.c:
rec_per_key is now in double precission
Added 'nulls_per_key_part'
Added 'extra_options' (flags for future)
Added support for PAGE_CHECKSUM
Give error HA_ERR_NEW_FILE when using unsupported maria extensions
Added comments
Add maria_uuid to index file
Added functions to store and read column_nr map.
Changed some functions to return my_bool instead of uint
storage/maria/ma_page.c:
Added checks that pages has correct key nr
Store 0xffffffff in checksum position if page checksums are not enabled
Moved key-page-delete link to take into account keypage header
storage/maria/ma_preload.c:
Remove old MyISAM dependent code
When scanning pages, only add pages to page cache for the requested index
storage/maria/ma_range.c:
maria_data_on_page() -> _ma_get_used_and_node()
Use keypage_header
storage/maria/ma_rt_index.c:
Fixed indentation
storage/maria/ma_rt_index.h:
Added support for dynamic index page header
Reserved place for PAGE_CHECKSUM
storage/maria/ma_rt_key.c:
Fixed indentation
maria_data_on_page() -> _ma_get_page_used()
maria_putint() -> maria_store_page_used()
storage/maria/ma_rt_mbr.c:
Fixed indentation
storage/maria/ma_rt_split.c:
Fixed indentation
maria_data_on_page () -> _ma_get_page_used()
storage/maria/ma_rt_test.c:
Fixed indentation
storage/maria/ma_search.c:
Remove support of using -1 as 'last used index' to _ma_check_index()
maria_data_on_page() -> _ma_get_page_used()
maria_data_on_page() -> _ma_get_used_and_node()
Use keypage_header
storage/maria/ma_sort.c:
Changed some buffers to size_t
Changed rec_per_key_part to double
storage/maria/ma_static.c:
Removed NEAR
Added maria_uuid
storage/maria/ma_test2.c:
Moevd testflag == 2 to correct place
Remove test of reading with index number -1 (not supported anymore)
storage/maria/ma_test_recovery.expected:
Updated results
storage/maria/ma_test_recovery:
Changed tmp table names so that one can run maria_chk on them
storage/maria/ma_write.c:
Fixed indentation
Use keypage_header
Store index number on index pages
maria_putint() -> _ma_store_page_used()
maria_data_on_page() -> ma_get_used_and_node()
maria_data_on_page() -> _ma_get_page_used()
Added PAGE_CHECKSUM
Added Maria handler to some functions
Removed some not needed casts
storage/maria/maria_chk.c:
Added error handling for HA_ERR_NEW_FILE
Added information about page checksums
rec_per_key_part changed to double
maria_data_on_page() -> _ma_get_page_used()
Use keypage_header
storage/maria/maria_def.h:
Added IDENTICAL_PAGES_AFTER_RECOVERY and SANITY_CHECKS
Changed rec_per_key_part to double
Added nulls_per_key_part
rec_per_key_rows -> records_at_analyze
st_maria_info -> MARIA_HA
Reserve place for new statistics variables, uuid, checksums per page etc.
Removed NEAR tags
Changed some prototypes to use my_bool and size_t
storage/maria/maria_pack.c:
st_maria_info -> MARIA_HA
Fixed indentation
storage/myisam/mi_dbug.c:
Fix wrong debug output for ULONG
mysys/my_rnd.c:
New BitKeeper file ``mysys/my_rnd.c''
mysys/my_uuid.c:
New BitKeeper file ``mysys/my_uuid.c''
into moksha.local:/Users/davi/mysql/push/mysql-5.1-runtime
include/config-win.h:
Auto merged
include/my_pthread.h:
Auto merged
mysys/thr_mutex.c:
Auto merged
into janus.mylan:/usr/home/serg/Abk/mysql-maria1
Makefile.am:
Auto merged
client/mysqldump.c:
Auto merged
configure.in:
Auto merged
libmysqld/Makefile.am:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/r/mysqldump.result:
Auto merged
mysql-test/t/disabled.def:
Auto merged
mysql-test/t/mysqldump.test:
Auto merged
mysys/mf_tempfile.c:
Auto merged
sql/Makefile.am:
Auto merged
sql/ha_partition.cc:
Auto merged
sql/ha_partition.h:
Auto merged
sql/handler.cc:
Auto merged
sql/lock.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_plugin.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/table.cc:
Auto merged
sql/table.h:
Auto merged
BUILD/compile-dist:
SCCS merged
into bodhi.(none):/opt/local/work/mysql-5.0-runtime
mysql-test/r/sp.result:
Auto merged
mysql-test/t/sp.test:
Auto merged
sql/sql_parse.cc:
Auto merged
"Disabled plugin is provoking Valgrind error"
If there are any auto-alloced string plug-in options, memory is
allocated during the call for handle_options(). We must free this
memory if we are not installing the plug-in.
include/my_getopt.h:
bug31382
new function: my_cleanup_options()
mysys/my_getopt.c:
bug31382
new function: my_cleanup_options(), fini_one_value()
alter init_variables() to take an extra option.
forward declare init_one_value() and fini_one_value()
sql/sql_plugin.cc:
bug31382
after calling handle_options(), make sure to call my_cleanup_options()
if we are not installing the plug-in.
into polly.(none):/home/kaa/src/maint/bug5731/my51-bug5731
mysql-test/r/variables.result:
Auto merged
mysys/my_getopt.c:
Auto merged
sql/set_var.cc:
Auto merged
mysql-test/t/variables.test:
Manual merge.
This is for bug #29446 "Specifying a myisam_sort_buffer > 4GB on 64 bit machines not possible". Support for myisam_sort_buffer_size > 4 GB on 64-bit Windows will be looked at later in 5.2.
mysql-test/r/variables.result:
Fixed the test.
mysql-test/t/variables.test:
Fixed the test.
mysys/my_getopt.c:
Print a warning to the error log if a user sets an option to a value greater than the option's maximum value.
sql/set_var.cc:
Issue an SQL warning if a user assignes a value greater than the variable's maximum value.
It's not possible to use WaitForSingleObject to wait
on a CRITICAL_SECTION, instead use the TryEnterCriticalSection function.
- if "mutex" was already taken => return EBUSY
- if "mutex" was aquired => return 0
include/config-win.h:
Make windows.h define TryEnterCriticalSection
mysys/my_winthread.c:
Use the TryEnterCriticalSection function to implement pthread_mutex_trylock
Prevent recursive behaviour by looking at the RecursionCount variable
in the CRITICAL_SECTION struct and return EBUSY from function if
the mutex was already locked once.
- "on" -> "restore" to avoid warning in MSVC when compiling with debug
mysys/my_init.c:
Fix spelling error that cause MSVC to throw a warning
when compiling with debug.
Use "restore" instaed of "on" to turn runtime checks back on