BUG#9826 Server crash on schema change ("drop table", "alter table") with NDB
See note on 10948 for detailed explanation.
struct a { void* a; long long b[1]; };
on PPC32 (and 32bit pa risc): 16
on x86: 12
so a malloc(sizeof(void*)+extra_bits) is wrong.
Assuming that the long long is 64 bit aligned as non-aligned 64bit accesses
are rather expensive on ppc.
Thanks to paulus for doing the PPC port of valgrind.
Without which I would no doubt still be trying to find this.
ndb/src/ndbapi/DictCache.cpp:
Fix allocation size for Ndb_local_table_info for architectures such as PPC and PA-RISC (32bit)
where
struct a { void* a; long long b;};
is 64 bit aligned (i.e. sizeof(struct a)==16)
ndb/src/ndbapi/DictCache.hpp:
Add warning about having to be the last member in the structure
After review fix
Copy from internal state to share state only when in lock write
mode (happens only when lock table x write has been performed since
update_state_info is only called when holding a TL_READ_NO_INSERT
lock normally. Previous patch would have failed in combination with
delayed writes.
Ensure that 'null_value' is not accessed before val() is called in FIELD() functions
Fixed initialization of key maps. This fixes some problems with keys when you have more than 64 keys
Fixed that ROLLUP don't always create a temporary table. This fix ensures that func_gconcat.test results are now predictable
mysql-test/r/func_gconcat.result:
Move innodb specific test to innodb.test
Changed table name r2 -> t2
More test to see how ROLLUP was optimized
mysql-test/r/innodb.result:
Moved test here form func_gconcat
mysql-test/r/olap.result:
New test results after optimization
mysql-test/t/func_gconcat.test:
Move innodb specific test to innodb.test
Changed table name r2 -> t2
More test to see how ROLLUP was optimized
mysql-test/t/innodb.test:
Moved test here form func_gconcat
sql/field.cc:
Move USE_PRAGMA_IMPLEMENTATION to proper place
sql/ha_berkeley.cc:
Move USE_PRAGMA_IMPLEMENTATION to proper place
sql/ha_blackhole.cc:
Move USE_PRAGMA_IMPLEMENTATION to proper place
sql/ha_heap.cc:
Move USE_PRAGMA_IMPLEMENTATION to proper place
sql/ha_innodb.cc:
Move USE_PRAGMA_IMPLEMENTATION to proper place
sql/ha_isam.cc:
Move USE_PRAGMA_IMPLEMENTATION to proper place
sql/ha_isammrg.cc:
Move USE_PRAGMA_IMPLEMENTATION to proper place
sql/ha_myisam.cc:
Move USE_PRAGMA_IMPLEMENTATION to proper place
sql/ha_myisammrg.cc:
Move USE_PRAGMA_IMPLEMENTATION to proper place
sql/ha_ndbcluster.cc:
Move USE_PRAGMA_IMPLEMENTATION to proper place
sql/handler.cc:
Move USE_PRAGMA_IMPLEMENTATION to proper place
sql/hash_filo.cc:
Move USE_PRAGMA_IMPLEMENTATION to proper place
sql/item.cc:
Move USE_PRAGMA_IMPLEMENTATION to proper place
sql/item_cmpfunc.cc:
Move USE_PRAGMA_IMPLEMENTATION to proper place
sql/item_func.cc:
Move USE_PRAGMA_IMPLEMENTATION to proper place
Ensure that 'null_value' is not accessed before val() is called
sql/item_geofunc.cc:
Move USE_PRAGMA_IMPLEMENTATION to proper place
sql/item_strfunc.cc:
Move USE_PRAGMA_IMPLEMENTATION to proper place
sql/item_subselect.cc:
Move USE_PRAGMA_IMPLEMENTATION to proper place
sql/item_sum.cc:
Move USE_PRAGMA_IMPLEMENTATION to proper place
sql/item_timefunc.cc:
Move USE_PRAGMA_IMPLEMENTATION to proper place
sql/item_uniq.cc:
Move USE_PRAGMA_IMPLEMENTATION to proper place
sql/log_event.cc:
Move USE_PRAGMA_IMPLEMENTATION to proper place
sql/mysql_priv.h:
Change key_map_full to not be const as we are giving it a proper value on startup
sql/mysqld.cc:
Move key_map variables here and initialize key_map_full properly
sql/opt_range.cc:
Move USE_PRAGMA_IMPLEMENTATION to proper place
sql/opt_range.h:
Fix that test_quick_select() works with any ammount of keys
sql/procedure.cc:
Move USE_PRAGMA_IMPLEMENTATION to proper place
sql/protocol.cc:
Move USE_PRAGMA_IMPLEMENTATION to proper place
sql/protocol_cursor.cc:
Move USE_PRAGMA_IMPLEMENTATION to proper place
sql/set_var.cc:
Move USE_PRAGMA_IMPLEMENTATION to proper place
sql/sql_analyse.cc:
Move USE_PRAGMA_IMPLEMENTATION to proper place
sql/sql_class.cc:
Move USE_PRAGMA_IMPLEMENTATION to proper place
sql/sql_crypt.cc:
Move USE_PRAGMA_IMPLEMENTATION to proper place
sql/sql_insert.cc:
Fixed that max_rows is ulong
sql/sql_list.cc:
Move USE_PRAGMA_IMPLEMENTATION to proper place
sql/sql_map.cc:
Move USE_PRAGMA_IMPLEMENTATION to proper place
sql/sql_olap.cc:
Move USE_PRAGMA_IMPLEMENTATION to proper place
sql/sql_select.cc:
Move USE_PRAGMA_IMPLEMENTATION to proper place
Fixed that ROLLUP don't have to always create a temporary table
Added new argument to remove_const() to make above possible
Fixed some errors that creapt up when we don't always do a temporary table for ROLLUP
sql/sql_string.cc:
Move USE_PRAGMA_IMPLEMENTATION to proper place
sql/sql_table.cc:
Simple optimizations
Fixed wrong checking of build_table_path() in undef-ed code
sql/sql_udf.cc:
Move USE_PRAGMA_IMPLEMENTATION to proper place
sql/sql_yacc.yy:
removed extra {}
BitKeeper/etc/logging_ok:
auto-union
configure.in:
Auto merged
scripts/make_binary_distribution.sh:
Auto merged
sql/lock.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_handler.cc:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_repl.cc:
Auto merged
sql/sql_table.cc:
Auto merged
Free memory after all SP invokation.
sql/sp_head.cc:
Fixed memory leaks in SP invokation. Have to release memory after each call,
or items and contexts are not released until it's too late.
BitKeeper/etc/logging_ok:
auto-union
configure.in:
Auto merged
scripts/make_binary_distribution.sh:
Auto merged
sql/lock.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_handler.cc:
Auto merged
sql/sql_repl.cc:
Auto merged
sql/sql_table.cc:
Auto merged
mysql-test/r/create.result:
merged, need fixing
sql/sql_parse.cc:
merged (perhaps wrong)
- mysql-test/Makefile.am: added a pattern match for t/*.sql
(t/mysql_delimiter.sql was missing from the source distribution)
include/config-win.h:
- removed double HAVE_CHARSET_cp932 #define
mysql-test/Makefile.am:
- added a pattern match for t/*.sql (t/mysql_delimiter.sql was missing from the
source distribution)
Analyze table corrupts the state on
data_file_length, records, index_file_length...
by writing the shared state when there is an updated internal
state due to inserts or deletes
Fixed by synching the shared state with the internal state before
writing it to disk
Added test cases of 2 error cases and a normal case in new
analyze test case
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
mysys/my_access.c: remove incorrect fix
comments
extra/yassl/taocrypt/src/integer.cpp:
yassl template instantiation - don't do too much
extra/yassl/taocrypt/src/template_instnt.cpp:
yassl template instantiation - don't do too much
mysys/my_access.c:
remove incorrect fix
sql/item_func.cc:
a couple of comment. assert added.
- support additional platforms (OpenBSD, Darwin)
- make use of /proc/cpuinfo CPU flag information
(needed to distinguish EMT64 Xeons from normal ones)
- chose the right CPU related options depending on
GCC version and target architecture
- check if the chosen CPU type is actually supported
by the GCC version , fallback to CPUs predecessor
until test compile succeeds
Bug #11064 some read error not detected in replication on 64-bit platform
sql/sql_repl.cc:
Bug #11064 some read error not detected in replication on 64-bit platform
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
adding test
field.cc:
bug#10714 Inserting double value into utf8 column crashes server:
sprintf was executed with too big length, which caused
crash on some Windows platforms.
sql/field.cc:
bug#10714 Inserting double value into utf8 column crashes server
sprintf was executed with too long length, which cau
crashe on Windows.
mysql-test/t/ctype_utf8.test:
adding test
mysql-test/r/ctype_utf8.result:
adding test
the code that is active for SP as well in 5.0)
sql/item.cc:
Rename of an Item_arena method.
sql/item_subselect.cc:
Rename of an Item_arena method.
sql/sql_class.h:
Rename of an Item_arena method.
sql/sql_parse.cc:
Rename of an Item_arena method.
sql/sql_union.cc:
Rename of an Item_arena method.
Compilation errors fixes.
config/ac-macros/yassl.m4:
Switch to -l/-L instead of passing file name directly. (more portable for ".a" archives)
extra/yassl/taocrypt/src/integer.cpp:
Instantiate more templates (needed by some 64bit boxes).
extra/yassl/taocrypt/src/template_instnt.cpp:
Instantiate more templates (needed by some 64bit boxes).
Move tcArrayDelete to TaoCrypt namespace (more portable).
Bug #11050 ndb_mgm "show" prints incorrectly after master data node fails
ndb/src/mgmclient/CommandInterpreter.cpp:
Bug #11050 ndb_mgm "show" prints incorrectly after master data node fails
behavior when extending fields that were fully part of a
multi-part key.
mysql-test/r/key.result:
Update results
mysql-test/t/key.test:
Add test for behavior of extending fields in a multi-part key
that were defined with a partial length the same as their
field length.
sql/sql_table.cc:
Reset key_part_length when old field length was the same as the
old key_part_length.