which Heikki fixed in 4.1.8 and 4.0.23. I verified that without Heikki's patch the test fails (7 gets inserted).
Test added to 4.1 because in testsuite of 4.0 it's impossible to start slave with InnoDB.
because old behaviour was somewhat nonsensical (kind of bug). Changes are that if repl threads are
down or disconnected the column will be NULL, and if master is idle the column will not grow indefinitely anymore.
sql/slave.cc:
mi->slave_running and rli->slave_running now uints (was needed only for mi but because of start_slave_thread() usage,
had to change both).
So mi->slave_running can now take 3 values: not running, running & not connected, running and connected.
The last value serves for calculation of Seconds_Behind_Master in SHOW SLAVE STATUS.
Changing this column's behaviour: if SQL or I/O thread is not running, or if I/O thread is not connected
(for example if it is reconnecting), it's NULL (to mean "unknown"). And if master is idle, the column will
not grow indefinitely like it used to (that was meaningless); this is fixed by forcing a value of 0
when the slave SQL thread has hit EOF of relay log (which has only a limited number of caveats explained
in comments in code).
sql/slave.h:
slave_running used to be bool but we need to distinguish, for the I/O slave thread, between
"running & connected" and "running & not connected" ("running" means the thread exists).
sql/sql_repl.cc:
we don't need anymore to set rli->last_master_timestamp to 0 (we used that to make Seconds_Behind_Master
be NULL) in RESET SLAVE and CHANGE MASTER, as these commands imply that slave threads are not running
and so Seconds_Behind_Master is already NULL because of that.
include/raid.h:
Fixing compile-time warning: pragma interface is not supported in C,
let's move it to C++ part of the header.
ndb/include/kernel/signaldata/CreateEvnt.hpp:
- remove extra erroneous ; from ends of function definitions
ndb/include/kernel/signaldata/PackedSignal.hpp:
- remove extra erroneous ; from ends of function definitions
ndb/include/kernel/signaldata/SumaImpl.hpp:
- remove extra erroneous ; from ends of function definitions
ndb/src/common/debugger/signaldata/DictTabInfo.cpp:
- remove extra erroneous ; from ends of function definitions
ndb/src/common/debugger/signaldata/NFCompleteRep.cpp:
- remove extra erroneous ; from ends of function definitions
ndb/src/common/logger/FileLogHandler.cpp:
- remove extra erroneous ; from ends of function definitions
ndb/src/kernel/blocks/backup/BackupInit.cpp:
- remove extra erroneous ; from ends of function definitions
ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp:
- remove extra erroneous ; from ends of function definitions
ndb/src/kernel/blocks/dbacc/DbaccInit.cpp:
- remove extra erroneous ; from ends of function definitions
ndb/src/kernel/blocks/dbdict/Dbdict.cpp:
- remove extra erroneous ; from ends of function definitions
ndb/src/kernel/blocks/dbdih/DbdihInit.cpp:
- remove extra erroneous ; from ends of function definitions
ndb/src/kernel/blocks/dblqh/DblqhInit.cpp:
- remove extra erroneous ; from ends of function definitions
ndb/src/kernel/blocks/dbtc/DbtcInit.cpp:
- remove extra erroneous ; from ends of function definitions
ndb/src/kernel/blocks/dbtup/DbtupGen.cpp:
- remove extra erroneous ; from ends of function definitions
ndb/src/kernel/blocks/dbtux/Dbtux.hpp:
- remove extra erroneous ; from ends of function definitions
ndb/src/kernel/blocks/dbtux/DbtuxGen.cpp:
- remove extra erroneous ; from ends of function definitions
ndb/src/kernel/blocks/dbutil/DbUtil.cpp:
- remove extra erroneous ; from ends of function definitions
ndb/src/kernel/blocks/grep/GrepInit.cpp:
- remove extra erroneous ; from ends of function definitions
ndb/src/kernel/blocks/ndbcntr/NdbcntrInit.cpp:
- remove extra erroneous ; from ends of function definitions
ndb/src/kernel/blocks/ndbfs/Ndbfs.cpp:
- remove extra erroneous ; from ends of function definitions
ndb/src/kernel/blocks/ndbfs/VoidFs.cpp:
- remove extra erroneous ; from ends of function definitions
ndb/src/kernel/blocks/qmgr/QmgrInit.cpp:
- remove extra erroneous ; from ends of function definitions
ndb/src/kernel/blocks/suma/Suma.cpp:
- remove extra erroneous ; from ends of function definitions
ndb/src/kernel/blocks/suma/SumaInit.cpp:
- remove extra erroneous ; from ends of function definitions
ndb/src/kernel/blocks/trix/Trix.cpp:
- remove extra erroneous ; from ends of function definitions
ndb/src/mgmsrv/MgmtSrvr.cpp:
- remove extra erroneous ; from ends of function definitions
ndb/src/ndbapi/NdbEventOperation.cpp:
- remove extra erroneous ; from ends of function definitions
ndb/src/ndbapi/NdbScanFilter.cpp:
- remove extra erroneous ; from ends of function definitions
ndb/tools/restore/Restore.cpp:
- remove extra erroneous ; from ends of function definitions
sql/item_create.h:
- remove extra erroneous ;
sql/sql_cache.cc:
- remove extra erroneous ;
tests/client_test.c:
- fix -pedantic warning
not simply inline, to fix the linking failure on Sun Solaris 9 (sparc)
with Sun Studio 9, reported by Peter Harvey.
myisam/sort.c:
my_var_write made static inline (fix for a link failure)
mysys/hash.c:
hash_key made static inline (fix a link failure)
include/errmsg.h:
New libmysql error status code CR_NO_STMT_METADATA
libmysql/errmsg.c:
Error message for CR_STMT_NO_METADATA.
Adding an empty line to shorten further diffs when new error
messages are added (as suggested by Monty).
libmysql/libmysql.c:
Return error from mysql_stmt_bind_result() if the statement contains
no metadata.
A few comments fixed.
tests/client_test.c:
Tests fixed: mysql_stmt_bind_result now returns error if there is no
metadata.
sql/item.h:
A quick fix for bug #7257: Crash in default tests: 'subselect'
We have to pass &item instead of &store to the Item_ref_null_helper()
then set ref.
(here in client_test.c because we need to check if several PS execution works and the bug shows up with binary protocol only )
tests/client_test.c:
Test for BUG#7242: Testing prepare + several times execute
* Backport of safety measures from 5.0: make numeorous replaces:
s/item->fix_fields()/if (!item->fixed) item->fix_fields()
sql/item.cc:
* More comments
* Backport of safety measures from 5.0: make numeorous replaces:
s/item->fix_fields()/if (!item->fixed) item->fix_fields()
sql/item.h:
Assert added
sql/item_cmpfunc.cc:
Backport of safety measures from 5.0: make numeorous replaces:
s/item->fix_fields()/if (!item->fixed) item->fix_fields()
sql/item_func.cc:
Backport of safety measures from 5.0: make numeorous replaces:
s/item->fix_fields()/if (!item->fixed) item->fix_fields()
sql/item_strfunc.h:
Backport of safety measures from 5.0: make numeorous replaces:
s/item->fix_fields()/if (!item->fixed) item->fix_fields()
sql/item_subselect.cc:
Backport of safety measures from 5.0: make numeorous replaces:
s/item->fix_fields()/if (!item->fixed) item->fix_fields()
sql/item_sum.cc:
Backport of safety measures from 5.0: make numeorous replaces:
s/item->fix_fields()/if (!item->fixed) item->fix_fields()
sql/set_var.cc:
Backport of safety measures from 5.0: make numeorous replaces:
s/item->fix_fields()/if (!item->fixed) item->fix_fields()
sql/sql_base.cc:
Backport of safety measures from 5.0: make numeorous replaces:
s/item->fix_fields()/if (!item->fixed) item->fix_fields()
sql/sql_handler.cc:
Backport of safety measures from 5.0: make numeorous replaces:
s/item->fix_fields()/if (!item->fixed) item->fix_fields()
sql/sql_help.cc:
Backport of safety measures from 5.0: make numeorous replaces:
s/item->fix_fields()/if (!item->fixed) item->fix_fields()
sql/sql_select.cc:
Backport of safety measures from 5.0: make numeorous replaces:
s/item->fix_fields()/if (!item->fixed) item->fix_fields()
* Added Item_ref::set_properties
* Item_ref::Item_ref now expects to get in *item either
NULL - then fix_fields() will be called later or
ptr to Item it will refer to - then an equivalent of fix_fields() call is performed
sql/item.cc:
Merge of fix for BUG#6976 continued: pulling in some Item_ref changes from 5.0
* Added Item_ref::set_properties
* Adjusted Item_ref::Item_ref calls to match new calling convention
sql/item.h:
Merge of fix for BUG#6976 continued: pulling in some Item_ref changes from 5.0
* Added Item_ref::set_properties
* Item_ref::Item_ref now expects to get in *item either
NULL - then fix_fields() will be called later or
ptr to Item it will refer to - then an equivalent of fix_fields() call is performed
sql/item_cmpfunc.cc:
Merge of fix for BUG#6976 continued: pulling in some Item_ref changes from 5.0
* Adjusted Item_ref::Item_ref calls to match new calling convention
sql/item_func.cc:
Merge of fix for BUG#6976 continued: pulling in some Item_ref changes from 5.0
* Added Item_ref::set_properties
* Adjusted Item_ref::Item_ref calls to match new calling convention
sql/item_row.cc:
Merge of fix for BUG#6976 continued: pulling in some Item_ref changes from 5.0
* Added Item_ref::set_properties
* Adjusted Item_ref::Item_ref calls to match new calling convention
sql/item_strfunc.cc:
Merge of fix for BUG#6976 continued: pulling in some Item_ref changes from 5.0
* Added Item_ref::set_properties
* Adjusted Item_ref::Item_ref calls to match new calling convention
The problem in 4.1 was the same as in 4.0 - fix_fields() not called for created Item_ref.
The fix is similar too - initialize Item_refs in ctor (but don't interfere with cases when
Item_ref is used by subselects).
sql/item.cc:
Fix for BUG#6976 ported from 4.0
sql/item_cmpfunc.cc:
Fix for BUG#6976 ported from 4.0
sql/item_func.cc:
Fix for BUG#6976 ported from 4.0
sql/item_row.cc:
Fix for BUG#6976 ported from 4.0
sql/item_strfunc.cc:
Fix for BUG#6976 ported from 4.0
ndb/src/kernel/vm/Configuration.cpp:
changed back to just restricting mac meta objects in dict to make sure we can "always" confiure ourselves out of unforseen limits